我在让两个Textview按照我想要的方式行事时遇到了问题。
我想要一个在左侧,另一个在右侧。我通过水平线性布局很简单地实现了这一点。他们两个应该只使用水平空间的一半(“留在他们身边”)并且如果字符串太长则垂直展开。
但是,如果一个或两个文本视图包含一个很长的字符串,我会得到奇怪的结果,这取决于我如何设置权重。
E.g。如果我将权重设置为Left = 1,则Right = 1如果两个字符串都很短或两个字符串都很长,则一切正常。但是,如果它们不同,那么短的缩小只会在每一行的字符上显示。使用0/0权重,较短的TextView就完全消失了。
如果我将短字符串文本视图设置为“0”而将长字符串文本视图设置为“1”或更高,但是只能覆盖一个案例,我可以使用它。
我还尝试了TableLayout和RelativeLayout,但没有任何效果。
亲切的问候, 水母
编辑: 通过将TextViews放入水平布局中的垂直LinearLayouts来解决它:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_gravity="right">
</TextView>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_gravity="right">
</TextView>
</LinearLayout>
</LinearLayout>
虽然看起来有点过大但是......但显然没有其他解决办法吗?
答案 0 :(得分:4)
如果我将一个字母字符串设置为第一个textView并将非常长的字符串设置为第二个textView
,这对我来说很好用<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal">
<TextView android:id="@+id/textView1" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1"></TextView>
<TextView android:id="@+id/textView2" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1"></TextView>
</LinearLayout>
答案 1 :(得分:1)
为了使android:layout_weight有效,你需要将你想要加权的尺寸设置为0.此外,虽然它不是必需的,但是你的总重量加起来可以很容易破译百分比。我喜欢使用分数并且总数为1.其他人喜欢使用100作为总数。因此,对于两个并排的编辑文本,每个文本占一半的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:gravity="right"
android:layout_gravity="right">
</TextView>
<TextView
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:gravity="right"
android:layout_gravity="right">
</TextView>
</LinearLayout>