2015-12-22 18 views
24

を埋めます。NestedScrollViewコンテンツがあるときに、それ自体をスクロールダウンし、私は<code>DrawerLayout</code>のconsits XML、<code>custom views</code>と<code>CoordinatorLayout</code>、<code>AppBarLayout</code>、<code>NestedScrollView</code>を持って

問題:NestedtScrollViewの内容がいっぱいになると、NestedtScrollViewがスクロールダウンします。 scrollView.setScrollY(0)や​​のカスタムクラスのようなすべての研究は私を助けませんでした。

私は

<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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 


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

    <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="0dp" 
      android:layout_weight="1"> 

     <android.support.design.widget.AppBarLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:fitsSystemWindows="true" 
       android:background="@color/semitransparet_color_primary"> 

      <android.support.v7.widget.Toolbar 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:app="http://schemas.android.com/apk/res-auto" 
        android:id="@+id/actionbar_toolbar" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:minHeight="?attr/actionBarSize" 
        app:layout_scrollFlags="scroll|enterAlways" 
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
        app:elevation="4dp"/> 

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

     <ProgressBar 
       android:id="@+id/progress" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center"/> 
     <android.support.v4.widget.NestedScrollView 
       android:id="@+id/product_scroll_wrpr" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:visibility="gone"> 

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

       // my content is here 

      </LinearLayout> 


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



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

    <LinearLayout 
      android:id="@+id/buttons_bar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:visibility="gone" 
      android:background="#01579B" 
      android:layout_gravity="bottom" 
      android:orientation="horizontal" 
      android:padding="8dp" 
      android:gravity="center_vertical"> 

    // here are my buttons 

</LinearLayout> 

<android.support.design.widget.NavigationView 
     android:id="@+id/navi" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     android:background="@android:color/white" 
     app:headerLayout="@layout/drawer_header_left" 
     app:menu="@menu/nav_drawer_menu"/> 

をスクロールこれを防ぐにはどうすればよい私のbuild.gradleNestedScrollViewLinearLayoutandroid:descendantFocusability="blocksDescendants"を設定してみ

compile 'com.android.support:support-v4:23.1.0' 

compile 'com.android.support:design:23.0.1' 
+0

残念ながら、私はちょうどdidntの使用コーディネーターのレイアウトを。 –

答えて

101

をconsits。わたしにはできる。

UPD:EditTextのようなレイアウトの子孫要素には注意が必要です。要素にはフォーカスが当てられません。これを解決する方法が分かっている場合は、お知らせください。

+8

イェップ!出来た!ありがとう! –

+3

これは長い間私を盗んだ。ありがとう!!! – amitairos

+0

ありがとう、それは動作します。 –

2

フォーカスをブロックする代わりに、フォーカスを奪う新しいビューを追加することもできます。 NestedScrollView上のどこにでも入れて、それが動作するはずです:

<!--focusStealer, to avoid NestedScrollingView to scroll due to dynamically created views that take the focus--> 
    <View 
     android:layout_width="0px" android:layout_height="0px" android:focusable="true" 
     android:focusableInTouchMode="true"/> 
関連する問題

 関連する問題