EditText и кнопка не отображаются над ListView - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть этот фрагмент, который содержит представление списка. Теперь я добавил кнопку и текст редактирования для использования в качестве панели поиска. Приложение работает нормально и показывает представление списка, но я нигде не вижу кнопку или текст редактирования. Я не уверен, что я делаю не так, вот мой код:

 <?xml version="1.0" encoding="utf-8"?>
    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".BookListFragment"/>

    <RelativeLayout
    android:id="@+id/container1"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="16dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0">


    <EditText
        android:id="@+id/searchBox"
        android:layout_width="241dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="24dp"
        android:layout_marginTop="15dp"
        android:layout_marginEnd="113dp"
        android:layout_marginBottom="639dp"
        android:autofillHints="@string/search"
        android:ems="10"
        android:inputType="textPersonName"
        android:visibility="visible" />

    <Button
        android:id="@+id/searchButton"
        android:layout_width="98dp"
        android:layout_height="39dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="279dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="13dp"
        android:layout_marginEnd="1dp"
        android:layout_marginRight="16dp"
        android:layout_marginBottom="646dp"
        android:text="@string/search" />

    </RelativeLayout>

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

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

<?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="match_parent"
    android:orientation="vertical">

    <RelativeLayout
        android:id="@+id/container1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="16dp">


        <EditText
            android:id="@+id/searchBox"
            android:layout_width="241dp"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_marginStart="24dp"
            android:layout_marginTop="15dp"
            android:layout_marginEnd="113dp"
            android:autofillHints="search"
            android:ems="10"
            android:inputType="textPersonName"
            android:visibility="visible" />

        <Button
            android:id="@+id/searchButton"
            android:layout_width="98dp"
            android:layout_height="39dp"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:layout_marginStart="279dp"
            android:layout_marginLeft="16dp"
            android:layout_marginTop="13dp"
            android:layout_marginEnd="1dp"
            android:layout_marginRight="16dp"
            android:text="search" />
    </RelativeLayout>
    
    
    <!-- Your List View Come Here -->
    <ListView
        android:layout_width="match_parent"
        android:layout_height="0px"
        android:layout_weight="1"
        android:layout_marginStart="24dp"
        android:layout_marginEnd="24dp"/>
</LinearLayout>

Может работать, но это не лучший способ сделать этот макет. Вы должны увидеть немного больше о Layout Xml Официальное описание

0 голосов
/ 02 апреля 2020

У вас есть следующие проблемы

  • У вас есть два root макета: ListView & RelativeLayout, поэтому я обернул ListView в RelativeLayout, чтобы сохранить один верхний root вид.
  • Ваш RelativeLayout имеет ширину и высоту 0dp, поэтому его содержимое не будет отображаться
  • Исправлено ListView под Button & EditText с использованием android:layout_alignParentBottom
  • Удалено слишком большое поле на внизу кнопки и удален EditText
  • Удалены неиспользуемые ограничения, связанные с ConstraintLayout

, попробуйте использовать приведенный ниже макет

<?xml version="1.0" encoding="utf-8"?>

<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:id="@+id/container1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="16dp"
    tools:context=".BookListFragment">


    <EditText
        android:id="@+id/searchBox"
        android:layout_width="241dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="15dp"
        android:layout_marginEnd="113dp"
        android:layout_marginRight="113dp"
        android:autofillHints="@string/search"
        android:ems="10"
        android:inputType="textPersonName"
        android:visibility="visible" />

    <Button
        android:id="@+id/searchButton"
        android:layout_width="98dp"
        android:layout_height="39dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginStart="279dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="13dp"
        android:layout_marginEnd="1dp"
        android:layout_marginRight="16dp"
        android:text="@string/search" />


    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/searchBox"
        android:layout_alignParentBottom="true" />


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