【问题标题】:Ralative Layout inside ListViewListView 内的相对布局
【发布时间】:2017-09-20 17:33:32
【问题描述】:

我有以下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>

我该如何解决这个问题?

【问题讨论】:

  • 你为什么不使用recyclerView,这是你问题的最佳解决方案。试试看this,你会明白的。
  • 我认为问题是由 ListView 上方的 TextView 引起的。您应该在开发人员选项中启用“显示布局绑定”功能,以便您可以看到导致问题的视图。访问此处了解如何启用“显示布局绑定”:youtube.com/watch?v=OGqJhK0FTjw。希望对您有所帮助
  • @LQGioan 是的,这是小费。所以现在看起来 like 我的行已添加到 TextView,而不是 ListView
  • 是的,它在我们开发布局时非常有用。使用app:layout_rowWeight="xxx" 时应考虑。取决于你的目标,你应该使用另一种方式来做到这一点。
  • 您可以更新您的问题(包括答案​​),以便有相同问题的其他人可以快速解决他们的问题

标签: android listview xamarin adapter android-relativelayout


【解决方案1】:

为了解决我的问题,我使用了 LQ Gioan 的建议,并将目标 GridLayout 替换为具有 weightSum 属性的 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" />

【讨论】:

    【解决方案2】:

    设置列表上方TextView的高度为wrap_content

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      相关资源
      最近更新 更多