項目中用到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的用法類似。