带有wrap_content的Android布局

时间:2016-05-24 19:05:10

标签: android layout listitem

我正在尝试创建自定义列表项布局,但我遇到了一个问题。请参阅以下示例:

有效运作

Effective functioning

问题

The Issue

问题是绿色矩形填满所有蓝色框(宽度设置为wrap_content),因为绿色方块消失了。方块必须在绿色矩形的右边,但是这个矩形的大小可以改变,我无法将绿色方块固定在蓝色框的右侧。

红色矩形是固定的,它们不是问题。

我使用了一些LinearLayoutRelativeLayout来执行此操作,但它无法正常工作。 我也不能使用drawableRight属性,因为在不久的将来,会有两个图标(绿色方块)而不是一个。

如果某人已经遇到此问题或有办法解决此问题。

想要的结果是:

[[ListIconView] [[此处有些文字] [图标]]< .....空格....... [x] [y] [z]]

[[ListIconView] [[来自.......的长文字] [图标]]< 。空格..> [x] [y] [z]]

[[ListIconView] [[来自旧书的很长篇文章....] [图标]] [x] [y] [z]]

x,y和z是图标。

2 个答案:

答案 0 :(得分:0)

假设红色方块和矩形不是问题(可能是父布局为RelativeLayout),并且您有TextViewImageView为绿色矩形和绿色方块,请使用

android:layout_weight="1"

代表TextView(绿色矩形)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Some very looooooooooooooooooooooooooooooooooooooooooooooooong text here" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/my_image" />

</LinearLayout>

答案 1 :(得分:0)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="100">

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="20" 
        android:text="blablah"/>

    <LinearLayout
        android:layout_weight="60"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:weightSum="100">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="80"
            android:text="test string string string"/>

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="20"
            android:text="String test"/>

    </LinearLayout>

    <ImageButton
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="20"/>

</LinearLayout>

我上面所做的是,我根据我想要适合的根布局中的每个项目的百分比来分配空间,即LinearLayout,总重量为100%。 ImageView将占用20%的空间,然后是另一个占据60%的LinearLayout,最后是占用20%的ImageButton