ListView 中的相对布局
Ralative Layout inside ListView
我有以下 Relativelayout,其中包含带有标签的 Linearlayout。此 Relativelayout 推送到自定义适配器中的自定义 ListView。我希望能一一看到 Relativelayouts,但得到了 this
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:padding="8sp">
<LinearLayout
android:orientation="vertical"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<TextView
android:text="Водомер 1"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="4sp"
android:layout_toRightOf="@id/linearLayout1"
<TextView
android:text="Последняя поверка:"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/linearLayout1"
<TextView
android:text="Последние показания:"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/linearLayout1"
<TextView
android:text="Текущие показания:"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/linearLayout1"
</LinearLayout>
<ImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="76sp"
android:layout_height="76sp"
android:paddingRight="13sp"
android:layout_alignParentRight="true"
</RelativeLayout>
目标布局看起来是这样的。如果我为这个 ListView 设置任何其他自定义视图,它看起来很好。
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="1"
app:rowCount="7">
<TextView
android:text="Список водомеров"
android:layout_width="match_parent"
app:layout_rowWeight="0.05"
android:gravity="center_horizontal"/>
<ListView
android:minWidth="25px"
android:minHeight="25px"
app:layout_rowWeight="0.3"
android:layout_width="match_parent"
android:choiceMode="singleChoice" />
<TextView
android:text="Введите показания водомера"
app:layout_rowWeight="0.02"
android:layout_width="match_parent"
android:gravity="center" />
<EditText
android:inputType="number"
app:layout_rowWeight="0.04"
android:layout_width="match_parent"/>
<Button
android:text="Сделать фото"
android:textSize="20dp"
app:layout_rowWeight="0.02"
android:layout_width="match_parent"
android:gravity="center"/>
<Button
android:text="Отправить показания"
android:textSize="24dp"
app:layout_rowWeight="0.15"
android:layout_width="match_parent"
android:gravity="center"/>
<Space
app:layout_rowWeight="0.3" />
</android.support.v7.widget.GridLayout>
我该如何解决这个问题?
设置TextView在列表上方的高度为wrap_content
为了解决我的问题,我使用了 LQ Gioan 的建议,并用 weightSum 属性 将目标 GridLayout 替换为 LinearLayout。在我使用的内容元素中 layout_weight 属性.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<TextView
android:text="Список водомеров"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_weight="11"
android:id="@+id/textView1" />
我有以下 Relativelayout,其中包含带有标签的 Linearlayout。此 Relativelayout 推送到自定义适配器中的自定义 ListView。我希望能一一看到 Relativelayouts,但得到了 this
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:padding="8sp">
<LinearLayout
android:orientation="vertical"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<TextView
android:text="Водомер 1"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="4sp"
android:layout_toRightOf="@id/linearLayout1"
<TextView
android:text="Последняя поверка:"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/linearLayout1"
<TextView
android:text="Последние показания:"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/linearLayout1"
<TextView
android:text="Текущие показания:"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/linearLayout1"
</LinearLayout>
<ImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="76sp"
android:layout_height="76sp"
android:paddingRight="13sp"
android:layout_alignParentRight="true"
</RelativeLayout>
目标布局看起来是这样的。如果我为这个 ListView 设置任何其他自定义视图,它看起来很好。
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="1"
app:rowCount="7">
<TextView
android:text="Список водомеров"
android:layout_width="match_parent"
app:layout_rowWeight="0.05"
android:gravity="center_horizontal"/>
<ListView
android:minWidth="25px"
android:minHeight="25px"
app:layout_rowWeight="0.3"
android:layout_width="match_parent"
android:choiceMode="singleChoice" />
<TextView
android:text="Введите показания водомера"
app:layout_rowWeight="0.02"
android:layout_width="match_parent"
android:gravity="center" />
<EditText
android:inputType="number"
app:layout_rowWeight="0.04"
android:layout_width="match_parent"/>
<Button
android:text="Сделать фото"
android:textSize="20dp"
app:layout_rowWeight="0.02"
android:layout_width="match_parent"
android:gravity="center"/>
<Button
android:text="Отправить показания"
android:textSize="24dp"
app:layout_rowWeight="0.15"
android:layout_width="match_parent"
android:gravity="center"/>
<Space
app:layout_rowWeight="0.3" />
</android.support.v7.widget.GridLayout>
我该如何解决这个问题?
设置TextView在列表上方的高度为wrap_content
为了解决我的问题,我使用了 LQ Gioan 的建议,并用 weightSum 属性 将目标 GridLayout 替换为 LinearLayout。在我使用的内容元素中 layout_weight 属性.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100">
<TextView
android:text="Список водомеров"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_weight="11"
android:id="@+id/textView1" />