天天看點

ScrollView以及NestedScrollView一直顯示滾動條

項目中用到NestedScrollView,産品要求顯示滾動條,讓客戶知道可上下滾動。這個小需求怎麼實作呢?直接上代碼。

​
            <android.support.v4.widget.NestedScrollView
                android:id="@+id/nestedscroll"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scrollbars="vertical"
                android:fadeScrollbars="false">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/recycler_term"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:layout_marginLeft="8dp" />

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

​
           

就是同時添加兩個屬性:

android:scrollbars="vertical"//垂直滾動條
android:fadeScrollbars="false"//不隐藏      

如果隻添加

android:scrollbars="vertical"
則隻有在上下滑動頁面的時候才會有垂直滾動條,停止滑動則滾動條消失。      

如果隻添加

android:fadeScrollbars="false"      

報錯:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.widget.ScrollBarDrawable android.widget.ScrollBarDrawable.mutate()' on a null object reference

當然了,我在項目中遇到的需求是需要在一定條件下才固定顯示滾動條,是以需要動态設定

mDialogBinding.nestedscroll.setScrollbarFadingEnabled(false);      

這時候xml中

<android.support.v4.widget.NestedScrollView
                android:id="@+id/nestedscroll"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scrollbars="vertical">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/recycler_term"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:layout_marginLeft="8dp" />

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

ScrollView的用法類似。