未定义 layoutweight 属性时视图消失
Views disappear when no layoutweight attribute is defined
我有布局(列表项):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="74dp"
android:background="@drawable/button_background">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/list_separator"
android:id="@+id/event_separator"
android:layout_marginLeft="14dp"
android:layout_marginRight="14dp" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="73dp"
android:gravity="center_vertical">
<RelativeLayout
android:layout_width="65dp"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
<TextView
android:id="@+id/event"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:maxLines="2"
android:text="Text text text"
android:textColor="@color/text"
android:textSize="14sp" />
<TextView
android:id="@+id/event_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="2014.05.13\n16.20:33"
android:textColor="@color/text_faded"
android:textSize="10sp"
android:gravity="center|right"
android:layout_marginRight="14dp"
android:layout_marginEnd="14dp"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/event_delete"
android:src="@drawable/ic_delete" />
</LinearLayout>
</LinearLayout>
- 第一个
View
只是列表分隔符
- 然后有一个
ImageView
图标
- 文本
TextView
(id.event)
- 时间戳
TextView
(id.event_time)
- 另一个图标'ImageView' (id.event_delete)
不行,我期待得到
[ 1 ]
[2][ 3 ][4][5]
但我明白了
[ 1 ]
[2][ 3 ]
4 和 5 不可见(不适合屏幕)。
当我添加 layout_weight="1"
时,它有点工作,但我不知道为什么:
<TextView
android:id="@+id/event"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:maxLines="2"
android:text="Text text text"
android:textColor="@color/text"
android:textSize="14sp"
android:layout_weight="1" />
替换此
android:layout_width="match_parent"
来自
android:layout_width="wrap_content"
你的 textview
@+id/event
您将 textview
宽度指定为 match_parent,因此它将占据所有宽度,因此 4 和 5 不可见
编辑:
<?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="74dp"
android:background="#ffffff"
android:orientation="vertical" >
<View
android:id="@+id/event_separator"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="14dp"
android:layout_marginRight="14dp"
android:background="#000000" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="73dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:weightSum="5" >
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
<TextView
android:id="@+id/event"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:ellipsize="marquee"
android:maxLines="2"
android:text="Text text text"
android:textColor="#000000"
android:textSize="14sp" />
<TextView
android:id="@+id/event_time"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="14dp"
android:layout_marginRight="14dp"
android:layout_weight="1"
android:gravity="center|right"
android:maxLines="2"
android:text="2014.05.13\n16.20:33"
android:textColor="#000000"
android:textSize="10sp" />
<ImageView
android:id="@+id/event_delete"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
</LinearLayout>
</LinearLayout>
如果您想要它就像您指定的那样,您最好将 android:layout_weight
提供给第二个 LinearLayout
中的所有视图,并按照 here 所述设置 android:layout_width="0dp"
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="73dp"
android:gravity="center_vertical">
<RelativeLayout
android:layout_width="65dp"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
<TextView
android:id="@+id/event"
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:maxLines="2"
android:text="Text text text"
android:textColor="@color/text"
android:textSize="14sp" />
<TextView
android:id="@+id/event_time"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="2014.05.13\n16.20:33"
android:textColor="@color/text_faded"
android:textSize="10sp"
android:gravity="center|right"
android:layout_marginRight="14dp"
android:layout_marginEnd="14dp"/>
<ImageView
android:scaleType="fitCenter"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:id="@+id/event_delete"
android:src="@drawable/ic_delete" />
</LinearLayout>
我有布局(列表项):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="74dp"
android:background="@drawable/button_background">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/list_separator"
android:id="@+id/event_separator"
android:layout_marginLeft="14dp"
android:layout_marginRight="14dp" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="73dp"
android:gravity="center_vertical">
<RelativeLayout
android:layout_width="65dp"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
<TextView
android:id="@+id/event"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:maxLines="2"
android:text="Text text text"
android:textColor="@color/text"
android:textSize="14sp" />
<TextView
android:id="@+id/event_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="2014.05.13\n16.20:33"
android:textColor="@color/text_faded"
android:textSize="10sp"
android:gravity="center|right"
android:layout_marginRight="14dp"
android:layout_marginEnd="14dp"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/event_delete"
android:src="@drawable/ic_delete" />
</LinearLayout>
</LinearLayout>
- 第一个
View
只是列表分隔符 - 然后有一个
ImageView
图标 - 文本
TextView
(id.event) - 时间戳
TextView
(id.event_time) - 另一个图标'ImageView' (id.event_delete)
不行,我期待得到
[ 1 ]
[2][ 3 ][4][5]
但我明白了
[ 1 ]
[2][ 3 ]
4 和 5 不可见(不适合屏幕)。
当我添加 layout_weight="1"
时,它有点工作,但我不知道为什么:
<TextView
android:id="@+id/event"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:maxLines="2"
android:text="Text text text"
android:textColor="@color/text"
android:textSize="14sp"
android:layout_weight="1" />
替换此
android:layout_width="match_parent"
来自
android:layout_width="wrap_content"
你的 textview
@+id/event
您将 textview
宽度指定为 match_parent,因此它将占据所有宽度,因此 4 和 5 不可见
编辑:
<?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="74dp"
android:background="#ffffff"
android:orientation="vertical" >
<View
android:id="@+id/event_separator"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="14dp"
android:layout_marginRight="14dp"
android:background="#000000" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="73dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:weightSum="5" >
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
<TextView
android:id="@+id/event"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:ellipsize="marquee"
android:maxLines="2"
android:text="Text text text"
android:textColor="#000000"
android:textSize="14sp" />
<TextView
android:id="@+id/event_time"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="14dp"
android:layout_marginRight="14dp"
android:layout_weight="1"
android:gravity="center|right"
android:maxLines="2"
android:text="2014.05.13\n16.20:33"
android:textColor="#000000"
android:textSize="10sp" />
<ImageView
android:id="@+id/event_delete"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_launcher" />
</LinearLayout>
</LinearLayout>
如果您想要它就像您指定的那样,您最好将 android:layout_weight
提供给第二个 LinearLayout
中的所有视图,并按照 here 所述设置 android:layout_width="0dp"
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="73dp"
android:gravity="center_vertical">
<RelativeLayout
android:layout_width="65dp"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
<TextView
android:id="@+id/event"
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:maxLines="2"
android:text="Text text text"
android:textColor="@color/text"
android:textSize="14sp" />
<TextView
android:id="@+id/event_time"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="2014.05.13\n16.20:33"
android:textColor="@color/text_faded"
android:textSize="10sp"
android:gravity="center|right"
android:layout_marginRight="14dp"
android:layout_marginEnd="14dp"/>
<ImageView
android:scaleType="fitCenter"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:id="@+id/event_delete"
android:src="@drawable/ic_delete" />
</LinearLayout>