2016-04-26 85 views
0

我想在下面的CardView圖像的Subhead行上右鍵對齊TextView「Due:」。我希望文本位於「11/30/2100」日期的左側。佈局代碼如下。我在這裏錯過了什麼?Android:我如何對TextView進行右對齊?

enter image description here

layout.xml

... 
<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <CheckBox 
     android:id="@+id/chkSelected" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginStart="2dp" 
     android:layout_marginLeft="2dp" 
     android:layout_centerVertical="true" 
     android:clickable="false" 
     android:focusable="false" /> 

    <TextView 
     android:id="@+id/cardBlankText2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:textColor="@android:color/black" 
     android:singleLine="true" 
     style="@style/Base.TextAppearance.AppCompat.Headline" /> 

    <TextView 
     android:id="@+id/cardBlankText3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/cardBlankText2" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:gravity="start" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp"    
     android:textColor="@android:color/black" 
     android:singleLine="true" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

    <TextView 
     android:id="@+id/cardBlankText4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/cardBlankText3" 
     android:layout_toEndOf="@+id/cardBlankText3" 
     android:layout_alignParentBottom="true" 
     android:gravity="end" 
     android:text="Due:" 
     android:textColor="@android:color/black" 
     android:singleLine="true" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

    <TextView 
     android:id="@+id/cardBlankText5" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/cardBlankText4" 
     android:layout_toEndOf="@+id/cardBlankText4" 
     android:layout_alignParentBottom="true" 
     android:gravity="end" 
     android:text="duedate" 
     android:textColor="@android:color/black" 
     android:singleLine="true" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

    </RelativeLayout> 
+1

機器人:layout_toLeftOf = 「ID」 –

+0

機器人:layout_toLeftOf = 「@ + ID /」 – Nilabja

+0

我加 「layout_toLeftOf =」 @ +如果/ cardBlankText5" 到TextView的#4,此應用崩潰與logcat的:「。 – AJW

回答

1

請嘗試使用以下代碼。

Replace in your xml.

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

    <CheckBox 
     android:id="@+id/chkSelected" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="2dp" 
     android:layout_marginStart="2dp" 
     android:clickable="false" 
     android:focusable="false" /> 

    <TextView 
     android:id="@+id/cardBlankText2" 
     style="@style/Base.TextAppearance.AppCompat.Headline" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:singleLine="true" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText3" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/cardBlankText2" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:gravity="start" 
     android:singleLine="true" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText4" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginRight="5dp" 
     android:layout_toLeftOf="@+id/cardBlankText5" 
     android:gravity="end" 
     android:singleLine="true" 
     android:text="Due:" 
     android:textColor="@android:color/black" 
     android:textSize="20dp" /> 

    <TextView 
     android:id="@+id/cardBlankText5" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="5dp" 
     android:gravity="end" 
     android:singleLine="true" 
     android:text="duedate" 
     android:textColor="@android:color/black" 
     android:textSize="20dp" /> 

</RelativeLayout> 

下面是屏幕截圖它如何與Aboce XML看起來。

+0

好的,我會嘗試以上 – AJW

+0

線條的順序是否有差別我注意到你把「樣式」代碼作爲每個TextView的第二排 – AJW

+0

@AJW沒有必要用'Linear Layout'來更改代碼只是嘗試這段代碼我在文本視圖中做了一些改變 –

1

使用的LinearLayout,檢查以下代碼:

<LinearLayout 
      android:id="@+id/LinearLayout1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_vertical" 
      android:orientation="horizontal" > 

      <CheckBox 
       android:id="@+id/chkSelected" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="2dp" 
       android:layout_marginStart="2dp" 
       android:clickable="false" 
       android:focusable="false" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" > 

       <TextView 
        android:id="@+id/cardBlankText2" 
        style="@style/Base.TextAppearance.AppCompat.Headline" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="4dp" 
        android:layout_marginStart="4dp" 
        android:singleLine="true" 
        android:text="Test1" 
        android:textColor="@android:color/black" /> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" > 

        <TextView 
         android:id="@+id/cardBlankText3" 
         style="@style/Base.TextAppearance.AppCompat.Subhead" 
         android:layout_width="0dp" 
         android:layout_height="wrap_content" 
         android:layout_marginLeft="4dp" 
         android:layout_marginStart="4dp" 
         android:layout_weight="1" 
         android:gravity="start" 
         android:singleLine="true" 
         android:text="Below 2" 
         android:textColor="@android:color/black" /> 

        <TextView 
         android:id="@+id/cardBlankText4" 
         style="@style/Base.TextAppearance.AppCompat.Subhead" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:gravity="end" 
         android:singleLine="true" 
         android:text="Due:" 
         android:textColor="@android:color/black" /> 

        <TextView 
         android:id="@+id/cardBlankText5" 
         style="@style/Base.TextAppearance.AppCompat.Subhead" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:gravity="end" 
         android:singleLine="true" 
         android:text="11/30/2100" 
         android:textColor="@android:color/black" /> 
       </LinearLayout> 
      </LinearLayout> 
     </LinearLayout> 

輸出:

0

嘗試製作的LinearLayout這樣做:

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <CheckBox 
      android:id="@+id/chkSelected" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_marginStart="2dp" 
      android:layout_marginLeft="2dp" 
      android:layout_centerVertical="true" 
      android:clickable="false" 
      android:focusable="false" /> 

     <TextView 
      android:id="@+id/cardBlankText2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_toRightOf="@+id/chkSelected" 
      android:layout_toEndOf="@+id/chkSelected" 
      android:layout_marginLeft="4dp" 
      android:layout_marginStart="4dp" 
      android:textColor="@android:color/black" 
      android:singleLine="true" 
      style="@style/Base.TextAppearance.AppCompat.Headline" /> 

     <TextView 
      android:id="@+id/cardBlankText3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/cardBlankText2" 
      android:layout_toRightOf="@+id/chkSelected" 
      android:layout_toEndOf="@+id/chkSelected" 
      android:gravity="start" 
      android:layout_marginLeft="4dp" 
      android:layout_marginStart="4dp" 
      android:textColor="@android:color/black" 
      android:singleLine="true" 
      style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true"> 

      <TextView 
       android:id="@+id/cardBlankText4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Due:" 
       android:textColor="@android:color/black" 
       android:singleLine="true" 
       style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

      <TextView 
       android:id="@+id/cardBlankText5" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:text="duedate" 
       android:textColor="@android:color/black" 
       android:singleLine="true" 
       style="@style/Base.TextAppearance.AppCompat.Subhead" /> 

     </LinearLayout> 

    </RelativeLayout> 
0

爲ID cardBlankText5 TextView的,更換

android:layout_toRightOf="@+id/cardBlankText4" 
android:layout_toEndOf="@+id/cardBlankText4" 

android:layout_alignParentRight="true" 
android:layout_alignParentEnd="true" 

以及與ID cardBlankText4 TextView的,與

android:layout_toLeftOf="@+id/cardBlankText5" 
android:layout_toStartOf="@+id/cardBlankText5" 
+0

我試過了。 TextView#4不顯示。 「到期:」缺失。 – AJW

2
just change **android:gravity** with 
    **android:layout_gravity**. 
    Your requirement should be done. 
+0

對於每個TextView或只有cardBlankText4? – AJW

+0

only cardBlankText4 ... – 2016-04-26 05:59:13

0

更換

android:layout_toRightOf="@+id/cardBlankText3" 
android:layout_toEndOf="@+id/cardBlankText3" 

//你定日期和dateString從左邊的TextView對齊排列,你因該原因:字符串的TextView從左邊開始 您可以通過根據日期給出日期 和Due:string textView的右對齊來輕鬆解決此問題。 //將此代碼替換爲舊代碼。 希望它對你有幫助。

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


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <CheckBox 
     android:id="@+id/chkSelected" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="2dp" 
     android:layout_marginStart="2dp" 
     android:clickable="false" 
     android:focusable="false" /> 

    <TextView 
     android:id="@+id/cardBlankText2" 
     style="@style/Base.TextAppearance.AppCompat.Headline" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:singleLine="true" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText3" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/cardBlankText2" 
     android:layout_marginLeft="4dp" 
     android:layout_marginStart="4dp" 
     android:layout_toEndOf="@+id/chkSelected" 
     android:layout_toRightOf="@+id/chkSelected" 
     android:gravity="start" 
     android:singleLine="true" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText4" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginRight="5dp" 
     android:layout_toLeftOf="@+id/cardBlankText5" 
     android:gravity="end" 
     android:singleLine="true" 
     android:text="Due:" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/cardBlankText5" 
     style="@style/Base.TextAppearance.AppCompat.Subhead" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="5dp" 
     android:gravity="end" 
     android:singleLine="true" 
     android:text="duedate" 
     android:textColor="@android:color/black" /> 

</RelativeLayout>