2016-06-15 11 views
0

並べて配置された要素を持つ線形レイアウトのレイアウトに問題があります。 要素をTableView内に配置することで、それらを線形レイアウト内に並べて配置することができますが、適切な配置を適用することはできません。例: TextView1は左揃えとそのパートナーTextView2がさえボタン 権利を揃えている文句を言わない私は線形レイアウトに要素を並べて配置し、適切な間隔と配置を適用する方法

android:layout_alignParentRight="true" 

を使用している場合でも、私はキャプション「小計」、「税」レシートアクティビティを作成しようとしています右揃えなければなりません、 「合計」の左に整列し、それらの値は以下右 に並んでいるが、私のxmlは

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" 
    android:layout_height="match_parent" 

    android:paddingTop="20dp" 
    android:paddingLeft="20dp" 
    android:paddingRight="20dp" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/app_bar_main" 
    tools:context=".MainActivity" 
    android:elevation=".5dp" 
    android:focusable="true" 
    android:layout_centerHorizontal="true"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_centerHorizontal="true" 
    android:orientation="vertical" 
    android:gravity="bottom"> 

    <TextView 

     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="SAN AGUSTIN MUSEUM" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/textViewTicketName"/> 
    <TextView 

     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingBottom="20dp" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="(Comes with Audio Guide)" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/textViewTicketDesc"/> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/border" 
     android:orientation="vertical" 
     android:gravity="bottom"> 



     <TableRow 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 

     <TextView 
      android:id="@+id/TblText1" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left" 
      android:text="Subtotal:"/> 

     <TextView 
      android:id="@+id/TblText11" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:text="$5.00" 
      android:layout_alignParentRight="true"/> 
     </TableRow> 

     <TextView 

     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 

     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Subtotal $5.00" 
     android:paddingLeft="0dp" 
     android:layout_below="@+id/textViewTicketName" 

     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/textSubtotal"/> 




     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Tax $0.50" 
      android:paddingLeft="0dp" 
      android:layout_below="@+id/textViewTicketName" 

      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/textTax"/> 

     <View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/> 

     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="10dp" 

     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Total $5.50" 
     android:paddingLeft="0dp" 
     android:layout_below="@+id/textTotal" 

     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/textViewTotalAmount"/> 

    </LinearLayout> 

    <Button 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text=" PURCHASE " 
     android:id="@+id/hiaButton" 
     android:onClick="hiaGetTicket" 
     android:paddingTop="8dp" 
     android:paddingBottom="8dp" 
     android:layout_marginTop="10dp" 
     android:layout_alignParentRight="true" 

     android:textSize="18sp" 
     android:textColor="@color/colorWhite" 
     android:alpha="20" 

     android:background="@drawable/buttonround"/> 

</LinearLayout> 
</ScrollView> 

ですこれは私が目指していますものです。 xmlにはTablViewを試していたので2つの小計のテキストフィールドがあります。 それは横並びにする必要がありますが、右側の値が以下のXMLを使用して

enter image description here

これまでのところ、これはいただきました!起きている 権利も正当化される一方、右側のキャプションは右揃えです

enter image description here

+0

グリッドビューを試しましたか? –

+1

期待した結果の画像/テンプレートを追加すると便利です。また、linearLayoutはlayout_alignParentRightをサポートしていません。 – Ozgur

+0

@マリス・ノープあなたは答えとして一例を挙げることができますか?私は水平方向と他のグリッドでレイアウト内の異なるレイアウトを使用しようとしましたが、 – TwoThumbSticks

答えて

2

使用すると、二つのビューの間のスペースを作成するためにlayout_weight。

<!-- Subtotal row --> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="80dp" 
orientation:"horizontal"> 

    <!--txt--> 
    <TextView 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:text="Subtotal" 
    android:gravity="right" 
    /> 

    <!-- empty space that will fill "subtotal" and "price", using layout_weight --> 
    <View 
    android:layout_width="0dp" 
    android:layout_weight="1" 
    android:layout_height="1dp"/> 

    <!-- price --> 
    <TextView 
    android:layout_width="20dp" 
    android:layout_height="wrap_content" 
    android:text="Subtotal" 
    /> 

</LinearLayout> 

layout_weightは、私たちが彼らの "重み" Sに基づいて、子ビューを整理することができます。これらの例を見て:

1例

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
orientation:"horizontal" 
android:weightSum="300" --> total sum of child's weight 
> 

<Button 
     android:layout_width="0dp" 
     android:layout_weight="100" -> %33 
     android:layout_height="1dp" 
     android:text="Button1" 
/> 

<Button 
     android:layout_width="0dp" 
     android:layout_weight="100" -> %33 
     android:layout_height="1dp" 
     android:text="Button2" 
/> 

<Button 
     android:layout_width="0dp" 
     android:layout_weight="100" -> %33 
     android:layout_height="1dp" 
     android:text="Button3" 
/> 

</LinearLayout> 

プレビュー:

____Button1________Button2________Button3____(等しい幅、および1%のスペースが存在することになる)

。実施例

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
orientation:"horizontal" 
android:weightSum="80" --> total sum of child's weight 
> 

<Button 
     android:layout_width="0dp" 
     android:layout_weight="40" -> %50 
     android:layout_height="1dp" 
     android:text="Button1" 
/> 

<Button 
     android:layout_width="0dp" 
     android:layout_weight="20" -> %25 
     android:layout_height="1dp" 
     android:text="Button2" 
/> 

<Button 
     android:layout_width="0dp" 
     android:layout_weight="20" -> %25 
     android:layout_height="1dp" 
     android:text="Button3" 
/> 

</LinearLayout> 

プレビュー:

________Button1____________Button2________Button3____(最初のものが広い)

3。たとえば、あなたのケース相対レイアウトあなたがこの方法でそれを行うことができますして

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="80dp" 
orientation:"horizontal"> 

    <!--txt--> 
    <TextView 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:text="Subtotal" 
    android:gravity="right" 
    /> 

    <View 
    android:layout_width="0dp" 
    android:layout_weight="777" --> this will fill empty space, we didn't specify weightSum, so it thinks weightSum is 777. 
    android:layout_height="5dp" 
    android:background="#ff0000" 
    /> 

</LinearLayout> 
+0

実際には動作しましたが、最初のテキスト要素と2番目のテキスト要素のdp値が異なる場合は、1つの行に収まるまで試してみました。 layout_weight = "1"がどのように働いたのか、1が正しい値である理由を完全に理解していない – TwoThumbSticks

+0

@TwoThumbSticks私の答えを編集しました。 – Ozgur

+0

おかげさまで、他の人の参考にもなりました。私はちょうどあなたの答えを受け入れた:) – TwoThumbSticks

2

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/main_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:id="@+id/firsttext" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:text="@string/hello_world" /> 

    <TextView 
     android:id="@+id/secondtext" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:text="@string/hello_world" /> 

</RelativeLayout> 

そして、あなたはのLinearLayoutを行いたい場合は、TextViewのためweightsumと重量を使用する必要があります。

関連する問題