Android如何在两个文本之间拆分,屏幕的全宽正好是百分之五十?

Android how to split between two textview the full width of screen exactly fifty fifty percent?

提问人:L. Kvri 提问时间:11/18/2012 更新时间:11/6/2014 访问量:12953

问:

我在 RelativeLayout 中有两个 TextView。 如果我想要那些总是(不同的屏幕分辨率,例如 540x960),如何设置 TextView,每个 TextView 的宽度是整个 UI 宽度的 50%?我会将两个 TextView 的大小设置为始终 UI 全宽的 50%。需要在不同的屏幕分辨率上拉伸 TextView。 我该怎么做?

Android 文本视图 屏幕

评论


答:

8赞 Niko Adrianus Yuwono 11/18/2012 #1

您可以尝试使用权重在相对布局中创建线性布局,然后设置 和 和 和 ,然后将文本视图放在线性布局中并设置每个文本视图 1 的权重。android:layout_width="fill_parent"android:weightSum = 2android:orientation="horizontal"

<RelativeLayout
android:layout_width = "fill_parent" 
android:layout_height = "wrap_content">
<LinearLayout 
android:layout_width = "fill_parent" 
android:layout_height = "wrap_content" 
android:orientation="horizontal"
android:weightSum = "2">
            <TextView
                android:layout_width = "fill_parent"
                android:layout_height = "wrap_content"
                android:text = "YOUR FIRST TEXT"
                android:weight = "1"
            />
            <TextView
                android:layout_width = "fill_parent"
                android:layout_height = "wrap_content"
                 android:text = "YOUR SECOND TEXT"
                android:weight = "1"
            />
        </LinearLayout>
</RelativeLayout>

权重总和将用于测量 TextView 的部分,例如,如果您给出权重总和 3 并给出 1 TextView 权重 = 2,另一个 TextView 权重 = 1,则布局将为 2/3 (66.666%) 和 1/3 (33.3333%),因此,如果您将其设置为 2 并赋予每个 TextView 权重 = 1,它应该是 50% 和 50%

它对我有用,如果您有任何问题,请随时在评论:)中提问

评论

0赞 L. Kvri 11/19/2012
这与一行(/线性布局)完美配合/如何与更多行配合?
0赞 L. Kvri 11/19/2012
如果我使用更多的线性布局,id 不起作用,因为第一个文本隐藏了第二个文本
0赞 Niko Adrianus Yuwono 11/19/2012
您可以使用相同的方法,只需添加另一个 LinearLayout 并设置上面的布局或下面的布局,或者如果您可以将相对布局更改为 LinearLayout,那么您会更容易:)
0赞 L. Kvri 11/19/2012
嗨,这是我的解决方案,你可以在这里看到<www.eklsofttrade.com/lk/android/mysolution_of_android_ui.pdf>
1赞 weston 8/7/2014
layout_widthTextViews 的 s 应为 。这将起作用,但如果与其他视图类型或不等比率结合使用,则不起作用。"0dp"
3赞 ajacian81 11/18/2012 #2

将两个 s 设置为 并给它们相同的 like,这应该这样做(或者不给任何一个 a )。layout_widthfill_parentTextViewlayout_weight1.0layout_weight

像这样的东西应该可以解决问题:

<LinearLayout 
 android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
 orientation = "horizontal">
        <TextView
            android:layout_width = "fill_parent"
            android:layout_height = "wrap_content"
            android:text = "Text 1"
        />
        <TextView
            android:layout_width = "fill_parent"
            android:layout_height = "wrap_content"
            android:text = "Text 2"
        />
    </LinearLayout>

评论

0赞 Siddharth 11/19/2012
填充父级非常重要,基本上有了权重,你需要让子布局争夺空间,让权重做出决定:)
12赞 Dhruv Raval 11/6/2014 #3

每当在水平/垂直中平均拆分一些视图时,例如(按钮,文本视图)

android:weight Sum / android:layout_weight 技术使用...

必须记住一件事:这些技术必须仅在线性布局中支持,但在这里您想使用相对布局,以便只需将线性布局放在相对布局中即可。

必须遵守以下规则:

1> 将 android:weight Sum 设置为您的线性布局

2>设置android:layout_width每个孩子 查看“0dp”内部

3>设置android:layout_weight每个子视图取决于有多少个子视图&android:weight总和(例如:android:weight Sum = “2” &两个子视图,然后layout_weight=“1”,layout_weight=“1”)

前任:

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2" >

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="child View 1" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="child View 2"/>
        </LinearLayout>
    </RelativeLayout>

如果 Layout Orientation 为 Vertical,则仅将 android:layout_height 设置为“0dp”而不是 android:layout_width

评论

0赞 Mousa Alfhaily 6/11/2019
谢谢,这太完美了!