我有一个布局,其中两个TextViews是在同一直线上,使得安卓:如何根据文本
如果TextView1是一个简短的文字,TextView2应立即有权被显示的长度对齐两个文本的意见到TextView1(IMAGE1),如果TextView1是一个长期的文字,TextView2应该是在同一行(IMAGE2)布局的右上角
我怎样才能做到这一点?
我有一个布局,其中两个TextViews是在同一直线上,使得安卓:如何根据文本
如果TextView1是一个简短的文字,TextView2应立即有权被显示的长度对齐两个文本的意见到TextView1(IMAGE1),如果TextView1是一个长期的文字,TextView2应该是在同一行(IMAGE2)布局的右上角
我怎样才能做到这一点?
使用布局这样的..
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="38dp"
android:layout_toRightOf="@+id/editText1" />
</RelativeLayout>
的EditText 1将推动edittext2其右......取决于它的文本..
您可以设置android:maxWidth
属性第一个文本视图。所以,你的布局是这样的:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="200dp"
android:text="sdfksdofsdfsdfsdfsadfgwagrswargweqrgeqrgqwergeqrgeqrg"
/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/textView1"
android:text="text2"
/>
保持最大宽度的硬编码值适用于我。但是,我可以根据TextView2的长度对其进行调整。因为所有设备都没有相同的宽度布局。 – 2012-04-25 10:08:49
编辑:
我显然是误读(或没有完全读取)你的问题。只是不介意我的回答 - 我投mxy的:)
上次我有同样的问题,我无法找到或破解一个简单的解决方案。计算像素不是一种选择(至少不适合我)。但是我发现了一种解决方法,最终导致了相同的显示概念,那就是使用SpannableStringBuilder。
正如我假设你想要两个不同的TextViews,因为你希望他们有不同的颜色(或尺寸,或风格,或字体)。 这个想法是为整个事情使用单个TextView,并在您的视图上做setText
之前准备一个SpannableString。
通过使用ForegroundColorSpan,TextAppearanceSpan等的组合,您可以使单个TextView看起来像不同的具有不同样式的TextView,并排坐在一起,根据需要包装到下一行。
链接:
我用的android简单的水平的LinearLayout:layout_weight属性和它的工作就像你想要的。 例子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/text1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="teeeeeeeext1"/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text2"/>
</LinearLayout>
无论Text1的长度如何,TextView2都只是粘在父视图的右边框上。即使text1的长度很小,text2也会粘在父视图的右边界上。 – 2012-04-25 11:03:18
这里发生的事情是,如果TextView1很长的文字,它是推动TextView2到最右边的那个TextView2不visible.If TextView1小,则TextView2在这里看到。 – 2012-04-25 10:05:48