2016-03-30 11 views
0

私は、TextViewとEditTextを備えたrecyclerviewを持っています。左側のTextViewとそれのEditTextの右側に行を構築しています。align reyclerview elementsアンドロイド

Aaa: value1 
Abbsbc: value2 
Cskhkdhd: value3 
HJhk: value4 

私はこの方法を見てビューをしたいと思います:次のように

  Aaa: value1 
    Abbsbc: value2 
Cskhkdhd: value3 
     HJhk: value4 

レイアウトは次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
android:id="@+id/brand_row" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@drawable/brand_selector"> 

<View 
    android:id="@+id/divider" 
    android:layout_width="match_parent" 
    android:layout_height="1dp" 
    android:background="@color/divider"/> 

<TextView 
    android:id="@+id/object" 
    android:layout_width="wrap_content" 
    android:layout_height="@dimen/edit_box_height" 
    android:layout_below="@id/divider" 
    android:gravity="center_vertical" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:singleLine="true" 
    android:textAppearance="?android:attr/textAppearanceListItemSmall" 
    android:textColor="@color/noData"/> 

<EditText 
    android:id="@+id/value" 
    android:layout_width="wrap_content" 
    android:layout_height="@dimen/edit_box_height" 
    android:layout_below="@id/divider" 
    android:layout_toRightOf="@id/object" 
    android:background="@android:color/transparent" 
    android:hint="Enter value" 
    android:singleLine="true" 
    android:textAppearance="?android:attr/textAppearanceListItemSmall" 
    android:textColor="@android:color/black" 
    android:textColorHint="@color/divider"/> 
</RelativeLayout> 
+0

たとえば、オブジェクトのテキストビューを重力の正しさを持つ別のレイアウトに追加しようとしましたか? –

答えて

0

はTextViewの中で、この行を追加します。 は現在、次のように見えます見ます

android:textAlignment="viewEnd" 
android:gravity="center_vertical|end" 

また、テキストビューのテキストの長さが行間で変化する場合、これはまだ不揃いの整列につながると思います。したがって、リニアレイアウトを親レイアウトとして使用する方がよいでしょう。私はそれに応じてXMLをやり直しています

<?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout 
     android:id="@+id/brand_row" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/brand_selector"> 

     <TextView 
      android:id="@+id/object" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="@dimen/edit_box_height" 
      android:textAlignment="viewEnd" 
      android:gravity="center_vertical|end" 
      android:paddingLeft="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin" 
      android:singleLine="true" 
      android:textAppearance="?android:attr/textAppearanceListItemSmall" 
      android:textColor="@color/noData"/> 

     <EditText 
      android:id="@+id/value" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="@dimen/edit_box_height" 
      android:layout_below="@id/divider" 
      android:layout_toRightOf="@id/object" 
      android:background="@android:color/transparent" 
      android:hint="Enter value" 
      android:singleLine="true" 
      android:textAppearance="?android:attr/textAppearanceListItemSmall" 
      android:textColor="@android:color/black" 
      android:textColorHint="@color/divider"/> 
    </LinearLayout> 
0

は、重量でのLinearLayoutをお試しください:

<RelativeLayout 
    android:id="@+id/brand_row" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/brand_selector"> 

    <View 
     android:id="@+id/divider" 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="@color/divider"/> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/divider" 
     android:orientation="horizontal"> 
     <TextView 
      android:id="@+id/object" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/edit_box_height" 
      android:layout_weight="0.5" 
      android:paddingLeft="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin" 
      android:singleLine="true" 
      android:textAppearance="?android:attr/textAppearanceListItemSmall" 
      android:textColor="@color/noData" 
      android:gravity="end"/> 

     <EditText 
      android:id="@+id/value" 
      android:layout_width="0dp" 
      android:layout_height="@dimen/edit_box_height" 
      android:layout_weight="0.5" 
      android:background="@android:color/transparent" 
      android:hint="Enter value" 
      android:singleLine="true" 
      android:textAppearance="?android:attr/textAppearanceListItemSmall" 
      android:textColor="@android:color/black" 
      android:textColorHint="@color/divider" 
      android:paddingStart="10dp"/> 
    </LinearLayout> 


</RelativeLayout> 

編集:私はスペースを残すためのEditText上のTextViewとStartpaddingを右に揃えるために重力ENDを追加しますラベルと値の間

+0

推奨された答えのどれも期待された結果を達成していません。 – edmond

+0

私はちょうど右に整列するために私の答えを編集しました、この方法でそれを試してください – gbaccetta

+0

oupsは、二重重力の属性を持って、今それはokでなければなりません: – gbaccetta