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:
Comment son supposé montrer:
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>
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>
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.
Ajoutez simplement cette ligne à l'enfant de NestedScrollView
en xml:
Android:focusableInTouchMode="true"
<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
Ajoutez cette ligne dans la disposition enfant de NestedScrollView
Android:descendantFocusability="afterDescendants"