Android 文本视图过长会使其他视图消失
当文本视图中的文本太长时,如何阻止复选框在下面的代码中消失?我对文本视图的最大宽度硬编码不感兴趣,我想显示我的整个文本Android 文本视图过长会使其他视图消失,android,android-layout,user-interface,textview,android-linearlayout,Android,Android Layout,User Interface,Textview,Android Linearlayout,当文本视图中的文本太长时,如何阻止复选框在下面的代码中消失?我对文本视图的最大宽度硬编码不感兴趣,我想显示我的整个文本 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView
<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>
包装内容
包装内容
@二角/边距
@尺寸/文字
居中
我会使用重量。使用值1将android:weightSum
添加到您的LinearLayout
对于线性布局中的每个元素
添加权重。例如,文本视图的0.8
,复选框的为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>
包装内容
0dp
@二角/边距
@尺寸/文字
居中
我会使用重量。使用值1将android:weightSum
添加到您的LinearLayout
对于线性布局中的每个元素
添加权重。例如,文本视图的0.8
,复选框的为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>
包装内容
0dp
@二角/边距
@尺寸/文字
居中
如果您想让文本进入新行(请使用RelativeLayout
):
另一种解决方案是使用此库来收缩文本:
如果您想让文本进入新行(使用RelativeLayout
):
另一种解决方案是使用此库来收缩文本:
我建议使用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>
我建议使用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>
如果要在textview上显示大数据,我建议在父布局中使用滚动视图
如果要在textview上显示大数据,我建议在父布局中使用滚动视图
我迟到了,但我希望能帮助smn解决这个问题。具有相同问题复选框使LinearLayout无法访问TextView,复选框和TextView都需要在xml中具有此行:
android:layout_gravity="center_vertical"
我迟到了,但我希望能帮助smn解决这个问题。具有相同问题复选框使LinearLayout无法访问TextView,复选框和TextView都需要在xml中具有此行:
android:layout_gravity="center_vertical"
使用文本视图权重=1和其他视图作为换行内容,以便其他视图的大小不会随文本而改变
使用文本视图权重=1和其他视图作为换行内容,以便其他视图的大小不会根据您的文本而改变
+1当我写答案时,你读懂了我的心思:)。关键是0dp
这就是问题所在,当然没有理由在TextView+1上使用android:layout\u weight=“0”
,你读到了我的心思,而我在写答案:)。关键是0dp
这就是问题所在,当然没有理由在TextView上使用android:layout\u weight=“0”