我有这个列表视图的布局:
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lblDate"
android:layout_marginLeft="10dp"
android:textColor="@color/list_content"
android:textSize="@dimen/list_site_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lblDesc"
android:layout_marginLeft="10dp"
android:textColor="@color/list_content"
android:textSize="@dimen/list_site_content" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:id="@+id/lblImp"
android:layout_marginLeft="10dp"
android:textColor="@color/list_content"
android:textSize="@dimen/list_site_content"
android:gravity="right"/>
</LinearLayout>
如何在TextView @ + id / lblDesc中创建文本,不要将textview @ + id / lblImp推出屏幕?
这是发生的事情的一个例子: [
还使用相对布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<ImageView
android:id="@+id/imgTipoDebito"
android:layout_gravity="center"
android:layout_width="@dimen/list_image_size"
android:layout_height="@dimen/list_image_size"
android:layout_alignParentLeft="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/lblData"
android:layout_marginLeft="10dp"
android:textColor="@color/list_content"
android:textSize="@dimen/list_site_content"
android:layout_toRightOf="@+id/imgTipoDebito"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/lblDescrizione"
android:layout_marginLeft="10dp"
android:textColor="@color/list_content"
android:textSize="@dimen/list_site_content"
android:layout_toRightOf="@+id/lblData"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/lblImporto"
android:layout_marginLeft="10dp"
android:textColor="@color/list_content"
android:textSize="@dimen/list_site_content"
android:gravity="right"
android:layout_alignParentRight="true" />
</RelativeLayout>
结果如下: [
答案 0 :(得分:1)
以下是一些建议。
<强> RelativeLayout的强>
将TextView
包裹在相对布局中并使用以下属性:
toLeftOf
toRightOf
以上属性会强制TextView
不会溢出到下一个TextView
。
为什么使用RelativeLayout
代替LinearLayout
?
在这种情况下,目的是防止TextView的溢出。
带权重的LinearLayout
您可以使用现有的实现,但在weight
的一部分中引入TextView
属性。但是,只有在每个width
0的TextView
属性。
e.g。
width="0dp"
weight="1"
同样,这将强制TextView保持其大小并防止溢出。
<强>更新强>
如上所述,您需要使用toRightOf
和toLeftOf
。
因此,如果我们专注于中间TextView
,您需要添加:
android:layout_toLeftOf="@id/lblImporto"
android:layout_toRightOf="@id/lblData"
这将确保TextView
位于lblData
的右侧和lblImporto
的左侧 - 使其不会溢出。