我想要一个简单的项目。左侧有一个图标,右侧有一个文本。我不想修复高度或宽度,因为根据用户的系统字体大小,文本可能会更大。
我的布局有两个问题。有人能告诉我如何解决以下问题吗?
TextView
没有填充剩余的项目(我将其涂成红色以查看它是否填充了该项目)并且某些项目上的文本被截断为椭圆形,即使项目上有足够的空间。 / LI>
我不知道如何垂直居中(项目高度可能因文本高度而异,这可能是用户的系统设置)。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/ivIcon"/>
<TextView
android:background="#FF0000"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:singleLine="true"
android:id="@+id/tvText"
android:padding="10dp"
android:textSize="12pt"
android:layout_weight="1">
</TextView>
</LinearLayout>
--- Recycler View ---- 高度为0dp,因为我想用此Recycler View填充剩余高度。
<android.support.v7.widget.RecyclerView
android:id="@+id/rvList"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</android.support.v7.widget.RecyclerView>
答案 0 :(得分:1)
你可以将imageview和textview一个左右对齐并删除权重而不是使用wrap_content
此处示例
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
android:gravity="center"/>
答案 1 :(得分:1)
因为SingleLine = true并且您应用于代码的权重,请尝试以下代码。
注意:请考虑文字大小最好使用sp(ScalePixels)代替pt,它会根据屏幕分辨率和像素密度自动调整。
<?xml version="1.0" encoding="utf-8"?>`<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:orientation="horizontal">
<ImageView
android:id="@+id/ivIcon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/tvText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="#FF0000"
android:padding="10dp"
android:textSize="12sp" />
`