0x01 问题来源
由于项目需要,需要在Java代码中创建 RecyclerView
, 发现给其设置了滚动条就是不显示.设置代码如下:
mEmojiRv.setVerticalScrollBarEnabled(true);
mEmojiRv.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
0x02 问题修复
Google一下,找到了解决办法,参考如下:
android - Is there any way to enable scrollbars for RecyclerView in code? - Stack Overflow
大概的含义是:
Java代码动态创建 RecyclerView
没有调用View的方法:
View.initializeScrollbarsInternal(TypedArray a)
View.initializeScrollbars(TypedArray a)
所以,解决方案是把 RecyclerView
单独放在一个布局里面,然后加载.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
加载布局:
mEmojiRv = (RecyclerView) LayoutInflater.from(getContext()).inflate(
R.layout.layout_recycler_view, mRootLayout, false);
经测试,上述方案可行.解决了不显示滚动条的问题.