NestedScrollView не прокручивает все дочерние элементы - PullRequest
0 голосов
/ 18 мая 2018

Я использую CollapsingToolbarLayout с NestedScrollView, а внутри NestedScrollView у меня есть список элементов, но при выполнении я не могу прокрутить все из них.

В моем примере я не вижу последнийTextView и некоторые из них.

Это мой код_действия.xml

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="256dp"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginStart="40dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                android:src="@drawable/space"
                app:layout_collapseMode="pin"/>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:elevation="7dp"/>

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

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

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:src="@drawable/ic_search"
        app:layout_anchor="@id/appbar"
        app:layout_anchorGravity="bottom|right"/>

    <!-- Your Scrollable View : Can be Nested Scroll View or Recycler View-->
    <android.support.v4.widget.NestedScrollView
        android:id="@+id/nestedScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:paddingTop="10dp">

            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <include layout="@layout/item_nested_scrollview"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="LastOne"/>

        </LinearLayout>

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

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

И это мой список элементов.

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:elevation="5dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Smartherd"
            android:textColor="@color/colorPrimary"
            android:textSize="20sp"
            android:textStyle="bold"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:text="@string/description"
            android:textColor="@android:color/black"
            android:textSize="15sp"/>

    </LinearLayout>

</android.support.v7.widget.CardView>

Эта фотография вверху enter image description here И этот, когда я прокрутил все вниз, как вы можете видеть, он не показывает текстовое представление, даже если изображение карты не отображается полностью.enter image description here

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Я нашел ответ, я добавил android: paddingBottom = "? Attr / actionBarSize" для макета внутри NestedScrollingView

0 голосов
/ 18 мая 2018

Когда вы работаете с вложенными представлениями прокрутки, вы должны явно указать приложению, какую прокрутку использовать для различных элементов.Прокрутка ParentLayout активирована по умолчанию.Приведенный ниже код помог мне активировать прокрутку моего списка во вложенной прокрутке. Вид

yourListView.setOnTouchListener(new View.OnTouchListener() {
            // Setting on Touch Listener for handling the touch inside ScrollView
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // Disallow the touch request for parent scroll on touch of child view
                v.getParent().requestDisallowInterceptTouchEvent(true);
                return false;
            }
        });

РЕДАКТИРОВАТЬ

Я просто помещаю статические данные в файл XMLКак я могу использовать вашу функцию?

Я думаю, тогда вы должны поместить свой код в ScrollView

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout 
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       xmlns:android="http://schemas.android.com/apk/res/android">
       <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <LinearLayout 
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:orientation="vertical">
                  <!-- Content here -->
            </LinearLayout>
      </ScrollView>
 </LinearLayout>

Источник

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