Android 表行中文本视图的优先级
我有一个关于文本视图的问题Android 表行中文本视图的优先级,android,textview,android-relativelayout,Android,Textview,Android Relativelayout,我有一个关于文本视图的问题 <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10px" android:text="This is text 1 for testing!">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:text="This is text 1 for testing!">
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text 2"
android:layout_gravity="right"
android:layout_marginLeft="10px">
</TextView>
</TableRow>
我在代码中有一个表行,其中包括一个图像视图和两个文本视图。。
|_|文本视图1文本视图2
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:text="This is text 1 for testing!">
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text 2"
android:layout_gravity="right"
android:layout_marginLeft="10px">
</TextView>
</TableRow>
图像视图具有android:layout\u alignParentLeft=“true”
第二个文本视图有android:layout\u alignParentRight=“true”
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:text="This is text 1 for testing!">
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text 2"
android:layout_gravity="right"
android:layout_marginLeft="10px">
</TextView>
</TableRow>
问题是,当我在第一个文本视图中写一个大文本时,它会在第二个文本视图中出现。我不想把一个特定的数字作为第一个文本视图的宽度。你知道我如何在第一个文本视图中写一个大文本,而不覆盖第二个文本视图吗?比如优先级与文本视图
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dip" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_code_contact"
android:layout_marginRight="5dip"
android:layout_alignParentLeft="true" />
<RelativeLayout
android:id="@+id/secondlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/icon" >
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:singleLine="true" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/thirdlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="25dip" >
<TextView
android:id="@+id/stamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:singleLine="true" />
</RelativeLayout>
</RelativeLayout>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:text="This is text 1 for testing!">
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text 2"
android:layout_gravity="right"
android:layout_marginLeft="10px">
</TextView>
</TableRow>
问题在于您没有为中间文本视图设置正确的限制。一旦删除了两个内部的RelativeLayout
(并将它们的布局参数移动到它们包含的TextView
),就可以通过将android:toLeftOf=“@id/title”
添加到第二个TextView
来解决您的问题:
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:text="This is text 1 for testing!">
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text 2"
android:layout_gravity="right"
android:layout_marginLeft="10px">
</TextView>
</TableRow>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:text="This is text 1 for testing!">
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text 2"
android:layout_gravity="right"
android:layout_marginLeft="10px">
</TextView>
</TableRow>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:text="This is text 1 for testing!">
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text 2"
android:layout_gravity="right"
android:layout_marginLeft="10px">
</TextView>
</TableRow>
注意:如果Text2超过布局的最大宽度,它可能会移到下一行
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:text="This is text 1 for testing!">
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text 2"
android:layout_gravity="right"
android:layout_marginLeft="10px">
</TextView>
</TableRow>
希望对你有帮助。让我知道是否可以做得更好。不知道是否与问题有关,但两个内部布局似乎没有用。
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:text="This is text 1 for testing!">
</TextView>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text 2"
android:layout_gravity="right"
android:layout_marginLeft="10px">
</TextView>
</TableRow>