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