Вопрос: Список перекрытий ListView с ToolBar


Я использую библиотеку поддержки дизайна Android.

ListView перекрытие первой строки с Toolbar виджет.

В моем MainActivity Я добавил схему согласования и добавлен первый фрагмент TAB ListView раскладка.

Но первый ряд ListView разрезать, потому что если Toolbar Вкладки.

Как решить эту проблему?

main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/coordi"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.CoordinatorLayout
            android:id="@+id/coordinatorLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <android.support.design.widget.AppBarLayout
                android:id="@+id/appBarLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    android:background="?attr/colorPrimary"
                    app:layout_scrollFlags="scroll|enterAlways"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

                <android.support.design.widget.TabLayout
                    android:id="@+id/tabLayout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:tabIndicatorColor="#FFEB3B"
                    app:tabIndicatorHeight="6dp"
                    app:tabSelectedTextColor="@android:color/white"
                    app:tabTextColor="@android:color/white" />

            </android.support.design.widget.AppBarLayout>

            <android.support.v4.view.ViewPager
                android:id="@+id/viewPager"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

            <android.support.design.widget.FloatingActionButton
                android:id="@+id/fab"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end|bottom"
                android:layout_margin="16dp"
                android:src="@drawable/plus" />

        </android.support.design.widget.CoordinatorLayout>

    </RelativeLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/layout_drawer_header" />

</android.support.v4.widget.DrawerLayout>


list_view.xml:
-------------
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></ListView>

5


источник


Ответы:


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

app:layout_behavior="@string/appbar_scrolling_view_behavior"

16



CoordinatorLayout«s ScrollingViewBehavior работает только с представлениями, поддерживающими вложенную прокрутку (например, RecyclerView). ListView не поддерживает его по умолчанию, поэтому CoordinatorLayout не обрабатывает положение ListView правильно.

Если вы хотите все прокрутки поведения библиотеки поддержки дизайна, вы можете попробовать преобразовать свой список в RecyclerView, ListView также получил вложенную поддержку прокрутки в API 21, с которой вы могли бы попытаться включить setNestedScrollingEnabled(true), но это, очевидно, будет работать только на Lollipop и более новых версиях.

Дополнительная информация здесь: ScrollingViewBehavior для ListView


4



Я получаю ту же проблему, когда часть моего списка перекрывается панелью инструментов. Я могу заставить его работать в android 4.4.4 (Kitkat), но проблема не может быть решена в android 5.1 (Lolipop) Итак, вот мое решение для решения этой проблемы

макет / activity_main.xml

<include layout="@layout/app_bar_main" android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

<android.support.design.widget.NavigationView android:id="@+id/nav_view"
    android:layout_width="wrap_content" android:layout_height="match_parent"
    android:layout_gravity="start" android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer"
    />

Ошибка, которую я сделал, заключалась в том, что, добавив Посмотреть список  в activity_main.xml  которые мы не должны добавлять, мы должны добавить Посмотреть список  в app_bar_main.xml

макет / app_bar_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    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" android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <android.support.design.widget.AppBarLayout android:layout_height="wrap_content"
        android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar android:id="@+id/toolbar"
            android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </FrameLayout>
    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/AartilistView"
        android:layout_below="@+id/textView"
        android:layout_alignParentStart="true"
        android:layout_marginTop="?android:attr/actionBarSize"
        />
    <android.support.design.widget.FloatingActionButton android:id="@+id/fab"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="bottom|end" android:layout_margin="16dp"
        android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

Другие файлы, содержащие код, макет / nav_header_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="190dp"
    android:background="@drawable/background_material_red"
    android:orientation="vertical"
    >

    <de.hdodenhof.circleimageview.CircleImageView
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/profile_image"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:src="@drawable/logo"
        app:border_color="#FF000000"
        android:layout_marginLeft="24dp"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginStart="24dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textSize="14sp"
        android:textColor="#FFF"
        android:textStyle="bold"
        android:gravity="left"
        android:paddingBottom="4dp"
        android:id="@+id/username"
        android:layout_above="@+id/email"
        android:layout_alignLeft="@+id/profile_image"
        android:layout_alignStart="@+id/profile_image" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/email"
        android:id="@+id/email"
        android:gravity="left"
        android:layout_marginBottom="8dp"
        android:textSize="14sp"
        android:textColor="#fff"
        android:layout_alignParentBottom="true"
        android:layout_alignLeft="@+id/username"
        android:layout_alignStart="@+id/username" />

</RelativeLayout>

макет / item_view.xml

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

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/icon_image"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:src="@drawable/img"
        android:maxHeight="80dp"
        android:maxWidth="80dp"
        android:longClickable="false"
        android:adjustViewBounds="true" android:paddingTop="10dp" android:paddingBottom="10dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Description"
        android:id="@+id/icon_text"
        android:layout_alignBottom="@+id/icon_image"
        android:layout_toEndOf="@+id/icon_image"
        android:layout_alignParentEnd="false"
        android:layout_alignParentStart="false"
        android:paddingBottom="20dp"
        android:paddingLeft="20dp" />
</RelativeLayout>

Меню / activity_main_drawer.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
        <group android:checkableBehavior="single">
            <item android:id="@+id/nav_info_details" android:icon="@drawable/ic_menu_info_details"
                android:title="About us" />
            <item android:id="@+id/nav_rate" android:icon="@drawable/ic_menu_star"
                android:title="Rate App" />
            <item android:id="@+id/nav_share" android:icon="@drawable/ic_menu_share"
                android:title="Share App" />
            <item android:id="@+id/nav_facebook" android:icon="@drawable/ic_menu_fb"
                android:title="Follow me on Facebook" />
        </group>

        <item android:title="Communicate">
            <menu>
                 <item android:id="@+id/nav_whatsapp" android:icon="@drawable/ic_menu_whatsapp"
                    android:title="Whatsapp us to share your" />
                 <item android:id="@+id/nav_email" android:icon="@drawable/sym_action_email"
                    android:title="Tell us how you feel about App" />
             </menu>
        </item>
</menu>

убедитесь, что вы создали проект, а затем запустите его. Не добавляйте свой список в activity_main.xml, а не добавляйте его в app_bar_main.xml, который вы будете включать в Activity_main.xml в любом случае.


1



Вы можете добавить некоторые дополнения к Toolbar с помощью

android:paddingBottom="5dp"

Это должно добавить некоторое пространство между двумя элементами


-1