我正在尝试在我的布局中创建一个简单的组件,其中有两个TextView水平相邻。右边的那个应该从左边的那个开始。我的代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/white"
android:textIsSelectable="false"
android:textSize="25sp" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:textColor="@android:color/white"
android:textSize="20sp" />
</LinearLayout>
我在呈现视图后以编程方式在每个TextView上设置文本。但是,有时文本在第一个TextView中无法正确显示 - 我可以看到宽度已正确设置,因为第二个TextView不在其旁边,但是文本被截断而不是使用空格。如果我锁定/解锁设备以刷新屏幕,则文本显示正确(没有TextViews的宽度更改)。
我已经尝试将其更改为使用RelativeLayout,但我看到同样的问题。
有什么想法吗?
答案 0 :(得分:0)
虽然我不明白你究竟是什么意思,但是建议你在父视图中使用weightSum属性,在子视图中使用android:layout_weight。同样允许在父视图中将许多子视图放在比率(如导航标签)中。
例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1" >
<TextView
android:id="@+id/text1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/white"
android:textIsSelectable="false"
android:textSize="25sp"
android:layout_weight="0.4" /> //60% width
<TextView
android:id="@+id/text2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:textColor="@android:color/white"
android:textSize="20sp"
android:layout_weight="0.6" /> //40% width
</LinearLayout>
另外,不要忘记将子视图的宽度设为0dp。因为这将导致忽略关于视图宽度的计算。或者您也可以将子视图的宽度设置为“match_parent”。宽度的任何其他属性将不起作用。 (如果你想要两个子视图的半匹配,请将layout_width设置为0.5两个视图.. ithink那些显而易见的注意事项)
请它帮助。