Android布局限制listView中的textSize

时间:2017-02-01 10:56:06

标签: android android-layout listview

我正在尝试从自定义列表中创建视图。

见下图

layout

颜色: - 蓝色是视图的布局 - 粉红色是列表中的一行 - 红色是图片,大小固定在左侧 - 灰色是显示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个布局要连续显示,并且如果需要,可以将中间的布局限制为所需的大小。

有办法做到这一点吗?

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>