web-dev-qa-db-fra.com

NestedScrollview ne démarre pas par le haut

J'ai un Recyclerview dans un NestedScrollview .. tout fonctionne bien sauf un thig. J'ai trois vues au total dans NestedScrollview Les deux premières sont LinearLayout puis Recyclerview. lorsque j'exécute mon application, l'activité n'affiche pas les deux premières dispositions, elle commence en haut de la vue de recyclage.

Comment son montrer ma mise en page:

How its show my layout

Comment son supposé montrer:

How its suppose to show

Et je charge cette mise en page enite sous un viewpager et mon viewpager est un enfant de Coordinator Layout.

<?xml version="1.0" encoding="utf-8"?>
<Android.support.v4.widget.NestedScrollView
Android:id="@+id/scrollView"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@color/home_layout_background">

<LinearLayout
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:orientation="vertical">

    <LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:orientation="horizontal">

        <com.daimajia.slider.library.SliderLayout
            Android:id="@+id/image_slider"
            Android:layout_width="match_parent"
            Android:layout_height="@dimen/image_slider_height"
            Android:layout_marginTop="@dimen/image_slider_top_margin" />
    </LinearLayout>

    <LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="@dimen/popular_fragment_side_padding"
        Android:layout_marginRight="@dimen/popular_fragment_side_padding"
        Android:layout_marginTop="@dimen/popular_fragment_side_padding"
        Android:orientation="horizontal"
        Android:weightSum="4">

        <RelativeLayout
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:layout_weight="1">

            <RelativeLayout
                Android:id="@+id/free_delivery"
                Android:layout_width="76dp"
                Android:layout_height="76dp"
                Android:layout_centerInParent="true"
                Android:background="@color/white">

                <RelativeLayout
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_centerInParent="true">

                    <ImageView
                        Android:id="@+id/btnImageViewFreeDelivery"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_centerHorizontal="true"
                        Android:background="@drawable/icon_free_delivery" />

                    <TextView
                        Android:id="@+id/btnTextFreeDelivery"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_below="@+id/btnImageViewFreeDelivery"
                        Android:layout_centerHorizontal="true"
                        Android:layout_marginTop="2dp"
                        Android:text="@string/free_delivery_txt"
                        Android:textColor="@color/popular_fragment_four_btn_txt"
                        Android:textSize="@dimen/popular_fragment_four_btn_txt_size" />
                </RelativeLayout>

            </RelativeLayout>

        </RelativeLayout>

        <RelativeLayout
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:layout_weight="1">

            <RelativeLayout
                Android:id="@+id/flash_deals"
                Android:layout_width="76dp"
                Android:layout_height="76dp"
                Android:layout_centerInParent="true"
                Android:background="@color/white">


                <RelativeLayout
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_centerInParent="true">

                    <ImageView
                        Android:id="@+id/btnImageViewFlashDeals"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_centerHorizontal="true"
                        Android:background="@drawable/icon_flash_deals" />

                    <TextView
                        Android:id="@+id/btnTextFlashDeals"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_below="@+id/btnImageViewFlashDeals"
                        Android:layout_centerHorizontal="true"
                        Android:layout_marginTop="2dp"
                        Android:text="@string/flash_deals_txt"
                        Android:textColor="@color/popular_fragment_four_btn_txt"
                        Android:textSize="@dimen/popular_fragment_four_btn_txt_size" />
                </RelativeLayout>

            </RelativeLayout>

        </RelativeLayout>

        <RelativeLayout
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:layout_weight="1">

            <RelativeLayout
                Android:id="@+id/for_you"
                Android:layout_width="76dp"
                Android:layout_height="76dp"
                Android:layout_centerInParent="true"
                Android:background="@color/white">

                <RelativeLayout
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_centerInParent="true">

                    <ImageView
                        Android:id="@+id/btnImageViewForYou"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_centerHorizontal="true"
                        Android:background="@drawable/icon_for_you" />

                    <TextView
                        Android:id="@+id/btnTextForYou"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_below="@+id/btnImageViewForYou"
                        Android:layout_centerHorizontal="true"
                        Android:layout_marginTop="2dp"
                        Android:text="@string/for_you_txt"
                        Android:textColor="@color/popular_fragment_four_btn_txt"
                        Android:textSize="@dimen/popular_fragment_four_btn_txt_size" />
                </RelativeLayout>


            </RelativeLayout>
        </RelativeLayout>

        <RelativeLayout
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:layout_weight="1">

            <RelativeLayout
                Android:id="@+id/shake_deals"
                Android:layout_width="76dp"
                Android:layout_height="76dp"
                Android:layout_centerInParent="true"
                Android:background="@color/white">

                <RelativeLayout
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_centerInParent="true">

                    <ImageView
                        Android:id="@+id/btnImageViewShakeDeals"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_centerHorizontal="true"
                        Android:background="@drawable/icon_shake_deals" />

                    <TextView
                        Android:id="@+id/btnTextShakeDeals"
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_below="@+id/btnImageViewShakeDeals"
                        Android:layout_centerHorizontal="true"
                        Android:layout_marginTop="2dp"
                        Android:text="@string/shake_deals"
                        Android:textColor="@color/popular_fragment_four_btn_txt"
                        Android:textSize="@dimen/popular_fragment_four_btn_txt_size" />
                </RelativeLayout>

            </RelativeLayout>
        </RelativeLayout>
    </LinearLayout>

    <Android.support.v7.widget.RecyclerView
        Android:id="@+id/recycler_view"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:layout_marginLeft="@dimen/popular_fragment_side_padding"
        Android:layout_marginRight="@dimen/popular_fragment_side_padding"
        Android:layout_marginTop="18dp"
        Android:scrollbars="none" />

</LinearLayout>

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

Ma disposition ViewPager

<?xml version="1.0" encoding="utf-8"?>
<Android.support.design.widget.CoordinatorLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
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.support.v4.view.ViewPager
    Android:id="@+id/viewPager"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="@color/home_layout_background"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

<Android.support.design.widget.AppBarLayout
    Android:id="@+id/appbar"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="?attr/actionBarSize"
        Android:layout_gravity="center"
        Android:background="@drawable/toolbar_background"
        app:layout_scrollFlags="scroll|enterAlways">

        <TextView
            Android:id="@+id/toolbar_title"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center"
            Android:text="@string/title_home"
            Android:textColor="@color/toolbar_title_txt_color"
            Android:textSize="@dimen/toolbar_txt_size"
            Android:textStyle="bold" />

    </Android.support.v7.widget.Toolbar>


    <Android.support.design.widget.TabLayout Android:id="@+id/tabs"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:background="@color/white"
        app:tabMode="scrollable"
        app:tabTextColor="@color/tab_bar_txt"
        app:tabIndicatorColor="@color/tab_bar_txt_selected"
        app:tabSelectedTextColor="@color/tab_bar_txt_selected"
        app:tabTextAppearance="@style/TabTextAppeareance"/>

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



</Android.support.design.widget.CoordinatorLayout>
46
Suvro

C'est un problème de concentration. Essayez:

findViewById(R.id.recycler_view).setFocusable(false);
findViewById(R.id.temp).requestFocus();

<?xml version="1.0" encoding="utf-8"?>
    <Android.support.v4.widget.NestedScrollView
    Android:id="@+id/scrollView"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="@color/home_layout_background">

    <LinearLayout
        Android:id="@+id/temp"
        Android:focusable="true"
        Android:focusableInTouchMode="true"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:orientation="vertical">

        <LinearLayout
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:orientation="horizontal">

            <com.daimajia.slider.library.SliderLayout
                Android:id="@+id/image_slider"
                Android:layout_width="match_parent"
                Android:layout_height="@dimen/image_slider_height"
                Android:layout_marginTop="@dimen/image_slider_top_margin" />
        </LinearLayout>

        <LinearLayout
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_marginLeft="@dimen/popular_fragment_side_padding"
            Android:layout_marginRight="@dimen/popular_fragment_side_padding"
            Android:layout_marginTop="@dimen/popular_fragment_side_padding"
            Android:orientation="horizontal"
            Android:weightSum="4">

            <RelativeLayout
                Android:layout_width="0dp"
                Android:layout_height="match_parent"
                Android:layout_weight="1">

                <RelativeLayout
                    Android:id="@+id/free_delivery"
                    Android:layout_width="76dp"
                    Android:layout_height="76dp"
                    Android:layout_centerInParent="true"
                    Android:background="@color/white">

                    <RelativeLayout
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_centerInParent="true">

                        <ImageView
                            Android:id="@+id/btnImageViewFreeDelivery"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_centerHorizontal="true"
                            Android:background="@drawable/icon_free_delivery" />

                        <TextView
                            Android:id="@+id/btnTextFreeDelivery"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_below="@+id/btnImageViewFreeDelivery"
                            Android:layout_centerHorizontal="true"
                            Android:layout_marginTop="2dp"
                            Android:text="@string/free_delivery_txt"
                            Android:textColor="@color/popular_fragment_four_btn_txt"
                            Android:textSize="@dimen/popular_fragment_four_btn_txt_size" />
                    </RelativeLayout>

                </RelativeLayout>

            </RelativeLayout>

            <RelativeLayout
                Android:layout_width="0dp"
                Android:layout_height="match_parent"
                Android:layout_weight="1">

                <RelativeLayout
                    Android:id="@+id/flash_deals"
                    Android:layout_width="76dp"
                    Android:layout_height="76dp"
                    Android:layout_centerInParent="true"
                    Android:background="@color/white">


                    <RelativeLayout
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_centerInParent="true">

                        <ImageView
                            Android:id="@+id/btnImageViewFlashDeals"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_centerHorizontal="true"
                            Android:background="@drawable/icon_flash_deals" />

                        <TextView
                            Android:id="@+id/btnTextFlashDeals"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_below="@+id/btnImageViewFlashDeals"
                            Android:layout_centerHorizontal="true"
                            Android:layout_marginTop="2dp"
                            Android:text="@string/flash_deals_txt"
                            Android:textColor="@color/popular_fragment_four_btn_txt"
                            Android:textSize="@dimen/popular_fragment_four_btn_txt_size" />
                    </RelativeLayout>

                </RelativeLayout>

            </RelativeLayout>

            <RelativeLayout
                Android:layout_width="0dp"
                Android:layout_height="match_parent"
                Android:layout_weight="1">

                <RelativeLayout
                    Android:id="@+id/for_you"
                    Android:layout_width="76dp"
                    Android:layout_height="76dp"
                    Android:layout_centerInParent="true"
                    Android:background="@color/white">

                    <RelativeLayout
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_centerInParent="true">

                        <ImageView
                            Android:id="@+id/btnImageViewForYou"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_centerHorizontal="true"
                            Android:background="@drawable/icon_for_you" />

                        <TextView
                            Android:id="@+id/btnTextForYou"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_below="@+id/btnImageViewForYou"
                            Android:layout_centerHorizontal="true"
                            Android:layout_marginTop="2dp"
                            Android:text="@string/for_you_txt"
                            Android:textColor="@color/popular_fragment_four_btn_txt"
                            Android:textSize="@dimen/popular_fragment_four_btn_txt_size" />
                    </RelativeLayout>


                </RelativeLayout>
            </RelativeLayout>

            <RelativeLayout
                Android:layout_width="0dp"
                Android:layout_height="match_parent"
                Android:layout_weight="1">

                <RelativeLayout
                    Android:id="@+id/shake_deals"
                    Android:layout_width="76dp"
                    Android:layout_height="76dp"
                    Android:layout_centerInParent="true"
                    Android:background="@color/white">

                    <RelativeLayout
                        Android:layout_width="wrap_content"
                        Android:layout_height="wrap_content"
                        Android:layout_centerInParent="true">

                        <ImageView
                            Android:id="@+id/btnImageViewShakeDeals"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_centerHorizontal="true"
                            Android:background="@drawable/icon_shake_deals" />

                        <TextView
                            Android:id="@+id/btnTextShakeDeals"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:layout_below="@+id/btnImageViewShakeDeals"
                            Android:layout_centerHorizontal="true"
                            Android:layout_marginTop="2dp"
                            Android:text="@string/shake_deals"
                            Android:textColor="@color/popular_fragment_four_btn_txt"
                            Android:textSize="@dimen/popular_fragment_four_btn_txt_size" />
                    </RelativeLayout>

                </RelativeLayout>
            </RelativeLayout>
        </LinearLayout>

        <Android.support.v7.widget.RecyclerView
            Android:id="@+id/recycler_view"
            Android:focusable="false"
            Android:focusableInTouchMode="false"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:layout_marginLeft="@dimen/popular_fragment_side_padding"
            Android:layout_marginRight="@dimen/popular_fragment_side_padding"
            Android:layout_marginTop="18dp"
            Android:scrollbars="none" />

    </LinearLayout>

    </Android.support.v4.widget.NestedScrollView>
58
tiny sunlight

J'ai eu le même problème et je l'ai résolu de la manière suivante.

Ajouter Android:descendantFocusability="blocksDescendants" à la disposition linéaire qui est le seul enfant de la vue de défilement imbriquée.

Cela permet à la vue de défilement imbriquée de commencer par le haut avec une modification minimale du code.

86
Seop Yoon

Ajoutez simplement cette ligne à l'enfant de NestedScrollView en xml:

Android:focusableInTouchMode="true"
12
<Android.support.v4.widget.NestedScrollView
            Android:id="@+id/nested_scrool_view"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:descendantFocusability="beforeDescendants"
            Android:focusableInTouchMode="true"
            Android:fitsSystemWindows="false"
            >

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


NestedScrollView nested_scrool_view;
nested_scrool_view = mView.findViewById(R.id.nested_scrool_view);
nested_scrool_view.smoothScrollTo(0,0); //set it on top
0
Keshav Gera

Ajoutez cette ligne dans la disposition enfant de NestedScrollView

Android:descendantFocusability="afterDescendants"
0
BekaKK