Кнопки между списками исчезают - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь создать макет, который должен выглядеть следующим образом:

  • Listview
  • ImageButton
  • Listview
  • ImageButton
  • Listview
  • ImageButton
  • ....

Так что у меня есть 5 Listview и 5 ImageButtons в конце.

Если яесть только один элемент в каждом ListView, он работает нормально, но когда я начинаю добавлять все больше и больше элементов, кнопки исчезают за элементами.

Теперь это выглядит как один большой ListView вместо того, чтобы разделяться Button.

То есть layout.xml

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:id="@+id/detailview_1_listview"/>

    <ImageButton
        android:id="@+id/detailview_1_button_add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_below="@id/detailview_1_listview"
        android:src="@android:drawable/ic_input_add" />

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/detailview_1_button_add"
        android:id="@+id/detailview_2_listview"/>

    <ImageButton
        android:id="@+id/detailview_2_button_add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_below="@id/detailview_2_listview"
        android:src="@android:drawable/ic_input_add" />

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/detailview_2_button_add"
        android:id="@+id/detailview_3_listview"/>

    <ImageButton
        android:id="@+id/detailview_3_button_add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_below="@id/detailview_3_listview"
        android:src="@android:drawable/ic_input_add" />

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/detailview_3_button_add"
        android:id="@+id/detailview_4_listview"/>

    <ImageButton
        android:id="@+id/detailview_4_button_add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_below="@id/detailview_4_listview"
        android:src="@android:drawable/ic_input_add" />

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/detailview_4_button_add"
        android:id="@+id/detailview_5_listview" />

    <ImageButton
        android:id="@+id/detailview_5_button_add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_below="@id/detailview_5_listview"
        android:src="@android:drawable/ic_input_add" />
</RelativeLayout>

И list_item.xml равно

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/detailview_1_imageview"
        android:layout_width="109dp"
        android:layout_height="112dp"
        app:srcCompat="@android:drawable/ic_menu_gallery"
        tools:layout_editor_absoluteX="62dp"
        tools:layout_editor_absoluteY="62dp" />

    <ImageView
        android:id="@+id/detailview_2_imageview"
        android:layout_width="109dp"
        android:layout_height="112dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="196dp"
        app:srcCompat="@android:drawable/ic_menu_gallery"
        tools:layout_editor_absoluteX="62dp"
        tools:layout_editor_absoluteY="62dp" />

    <Switch
        android:id="@+id/detailview_switch_mangel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:layout_marginEnd="524dp"
        android:layout_marginTop="94dp"
        android:text="Mangel" />

    <EditText
        android:id="@+id/detailview_textview_beschreibung"
        android:layout_width="230dp"
        android:layout_height="73dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="366dp"
        android:layout_marginTop="28dp"
        android:ems="10"
        android:inputType="textMultiLine"
        android:hint="Beschreibung"/>

    <EditText
        android:id="@+id/detailview_textview_fensternummer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/detailview_switch_mangel"
        android:layout_alignTop="@+id/detailview_textview_beschreibung"
        android:ems="10"
        android:hint="Nummer"
        android:inputType="number" />
</RelativeLayout>

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Я бы посоветовал вам добавить ImageButton под каждым ListView как нижний колонтитул этого ListView.В этом случае кнопка больше не будет скрываться, и вы получите соответствующее поведение при прокрутке списка.

Добавить нижний колонтитул в ListView очень просто.Я просто делюсь некоторым кодом из этого ответа здесь для удобства.

View footerView =  ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
list.addFooterView(footerView);

Пожалуйста, не забудьте добавить представление нижнего колонтитула в ListView перед установкой адаптера в ListView.

Есть еще один способ получить желаемое поведение, используя NestedScrollView.Вот хороший учебник о том, как вы можете иметь несколько RecyclerView внутри одного NestedScrollView.

Если вы планируете использовать RecyclerView вместо ListView, у вас может быть один RecyclerView и заполнять элементы в соответствии с вашими потребностями, как предложено здесь .Идея состоит в том, чтобы иметь один RecyclerView, чтобы ваша прокрутка и переработка представлений могли быть реализованы наиболее эффективным способом.

0 голосов
/ 08 июня 2018

Используйте ScrollView в качестве родительского макета.Тогда ваш listview не сольется с вашим imageButtons.

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent"
android:layout_height="wrap_content">

<ListView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:id="@+id/detailview_1_listview"/>

<ImageButton
    android:id="@+id/detailview_1_button_add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_below="@id/detailview_1_listview"
    android:src="@android:drawable/ic_input_add"
    />

<ListView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_below="@id/detailview_1_button_add"
    android:id="@+id/detailview_2_listview"/>

<ImageButton
    android:id="@+id/detailview_2_button_add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_below="@id/detailview_2_listview"
    android:src="@android:drawable/ic_input_add"
    />

<ListView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_below="@id/detailview_2_button_add"
    android:id="@+id/detailview_3_listview"/>

<ImageButton
    android:id="@+id/detailview_3_button_add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_below="@id/detailview_3_listview"
    android:src="@android:drawable/ic_input_add"
    />

<ListView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_below="@id/detailview_3_button_add"
    android:id="@+id/detailview_4_listview"/>

<ImageButton
    android:id="@+id/detailview_4_button_add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_below="@id/detailview_4_listview"
    android:src="@android:drawable/ic_input_add"
    />

<ListView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_below="@id/detailview_4_button_add"
    android:id="@+id/detailview_5_listview"/>

<ImageButton
    android:id="@+id/detailview_5_button_add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_below="@id/detailview_5_listview"
    android:src="@android:drawable/ic_input_add"
    />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...