当TextView中的文字太长时,如何阻止复选框在下面的代码中消失?我对TextView的硬编码max_width不感兴趣,我想显示我的整个文本。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv"
style="@style/Text"
android:layout_weight="0"
android:text="@string/multiple_sounds" />
<CheckBox
android:id="@+id/cb"
style="@style/Text"
android:layout_gravity="right"
android:layout_weight="1"/>
</LinearLayout>
styles.xml
<style name="Text">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:padding">@dimen/margin</item>
<item name="android:textSize">@dimen/text</item>
<item name="android:textAlignment">center</item>
</style>
答案 0 :(得分:2)
我会用体重。将LinearLayout
添加到1
,其值为LinearLayout
对于0.8
添加重量的每个元素。例如,Checkbox
表示textview,0.2表示0dp
。
然后为每个元素设置宽度为 <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:id="@+id/tv"
style="@style/Text"
android:layout_weight="0.8"
android:text="@string/multiple_sounds" />
<CheckBox
android:id="@+id/cb"
style="@style/Text"
android:layout_gravity="right"
android:layout_weight="0.2"/>
</LinearLayout>
!
<style name="Text">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">0dp</item>
<item name="android:padding">@dimen/margin</item>
<item name="android:textSize">@dimen/text</item>
<item name="android:textAlignment">center</item>
</style>
更新你的风格:
{{1}}
答案 1 :(得分:0)
如果您要在textview上显示大数据,我建议您在父布局中使用滚动视图。
答案 2 :(得分:0)
对此我来晚了,但希望对这个问题有所帮助。同样的问题,checkBox使得TextView对于LinearLayout无法访问,checkBox和textView都需要在xml中包含以下行:
android:layout_gravity="center_vertical"
答案 3 :(得分:0)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:id="@+id/tv"
style="@style/Text"
android:layout_weight=""
android:text="@string/multiple_sounds" />
<CheckBox
android:id="@+id/cb"
style="@style/Text"
android:layout_gravity="right"
android:layout_weight="wrap_content"/>
</LinearLayout>
答案 4 :(得分:-1)
如果您希望文字换行(使用RelativeLayout
):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBox
android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/checkbox" />
</RelativeLayout>
另一个解决方案是使用此lib来缩小文本: https://github.com/grantland/android-autofittextview
答案 5 :(得分:-1)
我建议使用RelativeLayout来保持UI的一致性。以下是相对布局代码示例
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<TextView
android:id="@+id/tv"
style="@style/Text"
android:layout_toLeftOf="@+id/cb"
android:text="@string/multiple_sounds" />
<CheckBox
android:id="@+id/cb"
style="@style/Text"
android:layout_gravity="right"
android:layout_alignParentEnd="true"/>
</RelativeLayout>