我正在尝试从自定义列表中创建视图。
见下图
颜色: - 蓝色是视图的布局 - 粉红色是列表中的一行 - 红色是图片,大小固定在左侧 - 灰色是显示2个文本的地方:标签和值 - 橙色是另一张图片,尺寸固定,应位于右侧
我阅读了很多关于布局的内容,但无法找到实现此目的的方法。
无论我尝试什么,如果文字太长,它都会在橙色图片下面。
以下是我使用的XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/flower_picture"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@color/white"
android:padding="1dp"
android:scaleType="fitXY" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:orientation="horizontal">
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LABEL" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:ellipsize="end"
android:maxLines="1" />
</LinearLayout>
<ImageView
android:id="@+id/wateredbutton"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@color/white"
android:scaleType="fitXY" />
</LinearLayout>
我尝试了很多东西但是找不到限制文本大小的方法,而没有设置layout_width的textSize。
我认为android能够检测到有3个布局要连续显示,并且如果需要,可以将中间的布局限制为所需的大小。
有办法做到这一点吗?
答案 0 :(得分:0)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/flower_picture"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/white"
android:padding="1dp"
android:scaleType="fitXY" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_weight="3"
android:orientation="horizontal">
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:text="LABEL" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:ellipsize="end"
android:inputType="text"
android:lines="1"
android:maxLines="1" />
</LinearLayout>
<ImageView
android:id="@+id/wateredbutton"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/white"
android:scaleType="fitXY" />
</LinearLayout>
使用它可以解决您的问题,
答案 1 :(得分:0)
如果要连续限制文本视图。使用相对布局并添加到RightOff并给出右图片的图片ID,它将限制在图片的左边,不会在图片后面剪切
答案 2 :(得分:0)
尝试以下不相互重叠的代码,并在TextView中限制文本
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/flower_picture"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:background="@color/white"
android:padding="1dp"
android:scaleType="fitXY" />
<ImageView
android:id="@+id/wateredbutton"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:background="@color/white"
android:scaleType="fitXY" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/wateredbutton"
android:layout_toRightOf="@+id/flower_picture"
android:orientation="horizontal"
android:weightSum="10">
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:ellipsize="end"
android:maxLines="1" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:ellipsize="end"
android:maxLines="1" />
</LinearLayout>
</RelativeLayout>