【问题标题】:How to set text view aligned to parent textview inside relative layout in android?如何在android中的relativelayout中设置textview对齐到父textview?
【发布时间】:2018-12-30 11:45:53
【问题描述】:
<RelativeLayout
    android:id="@+id/rl_top_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/text1"
        style="@style/Typeface.H1.Bold.TextDarkGrey"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="left"
        android:text="500pts"
        android:textColor="@color/text_dark_grey"
        android:textSize="@dimen/tfl_24"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/text2"
        style="@style/Typeface.H1.Bold.TextDarkGrey"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="right"
        android:text="£5.00"
        android:textColor="@color/text_dark_grey"
        android:textSize="@dimen/tfl_24"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/text3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/fdv_text_points"
        android:layout_gravity="center"
        android:gravity="left"
        android:text="@string/points"
        android:textColor="@color/text_mid_grey"
        android:textSize="@dimen/tfl_16" />

    <TextView
        android:id="@+id/text4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/fdv_text_voucher"
        android:layout_gravity="center"
        android:gravity="right"
        android:text="@string/voucher"
        android:textColor="@color/text_mid_grey"
        android:textSize="@dimen/tfl_16" />
</RelativeLayout>

这是我的 xml,我已经设置了左右两个文本视图以及左右两个文本视图,我希望在文本视图下方应该与父顶部文本视图对齐,例如 text1 与 text3 对齐中心和 text2 与文本 4 对齐目前它即将到来的 text1 开始到 text3 和 text2 开始的文本 4 请建议我如何设置父母的对齐中心

【问题讨论】:

  • 你能发布一张所需 UI 的图片吗?在那里很容易理解。
  • pastebin.com/Hq32Qkry 。看这个我想保持父文本视图的文本视图中心而不是顶部文本视图的开始@Khemraj

标签: android android-layout


【解决方案1】:

@Khemraj 答案是您需要的输出。但是你需要相对布局然后尝试下面的代码

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

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_toLeftOf="@id/divider2"
        android:layout_toStartOf="@+id/divider2"
        android:gravity="center"
        android:text="Title More Text" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/tv1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignRight="@+id/tv1"
        android:layout_below="@+id/tv1"
        android:gravity="center"
        android:text="description" />


    <TextView
        android:id="@+id/tv3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_toEndOf="@+id/divider2"
        android:layout_toRightOf="@id/divider2"
        android:gravity="center"
        android:text="Title More Text" />

    <TextView
        android:id="@+id/tv4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/tv3"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignStart="@+id/tv3"
        android:layout_below="@+id/tv1"
        android:gravity="center"
        android:text="decsription" />

    <View
        android:id="@+id/divider2"
        android:layout_width="1dp"
        android:layout_height="1dp"
        android:layout_centerHorizontal="true"
        android:background="?android:attr/listDivider" />

</RelativeLayout>

【讨论】:

    【解决方案2】:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="fkaj;sdlfkasj;dfksaf"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="asdf"/>
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="fkaj;sdlfkasj;dfksaf"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="asdf"/>
    
        </LinearLayout>
    
    </LinearLayout>
    

    【讨论】:

    • 这很好,但布局是相对布局而不是线性布局
    • @AnilThakur 这是满足您要求的可靠解决方案
    • 我不能使用 Linearlayout 我需要在相对布局中使用它,因为如果我使用线性布局,它将更加嵌套
    • 我在 3 年和 20 个应用程序中使用 LinearLayout。我从来没有感觉到 LinearLayout 有任何滞后或缺点。
    【解决方案3】:

    实际上布局重力在相对布局中不起作用,所以应该使用相对布局的 layout_below、layout_left_of、layout_right_of 和 layout_above 属性。也可以使用Relative Layout的centerInParent、AlignParentLeft、AlignParentRight属性代替重力

    【讨论】:

    • 你能检查我的 XML 我试过但它不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    相关资源
    最近更新 更多