如何以编程方式设置“android:scrollbars=vertical”?

15

我想在代码中动态地设置一个EditText的滚动条,但是我没有找到相应的setscrollbars API。请问是否可以通过编程实现此功能?

android:scrollbars="vertical"

这可行吗?我如何在程序中实现这个?

4个回答

6

我也在寻找编程方法来实现这个功能。

http://developer.android.com/reference/android/view/View.html#attr_android:scrollbars看来,相关的方法并没有被提及,因此这似乎是不可能的

唯一描述起来不错的方法是:

View.setVerticalScrollBarEnabled(boolean)

但在我的情况下,它没有起作用。但这可能取决于布局和使用方式。

现在我考虑采用两种布局:一种属性设置为“none”,另一种设置为“vertical”。然后在代码中,我可以决定使用哪个。


嗨,这对我也没有用。如果您有其他建议,请发布。 - Raj

2
    final TypedArray typedArray = context.obtainStyledAttributes(null,  new int[]{});
            try {
                Method method = View.class.getDeclaredMethod("initializeScrollbars" , TypedArray.class);
                method.invoke(this, typedArray);
            }catch (Exception e) {
            }
            typedArray.recycle();
 setVerticalScrollBarEnabled(true);

0

您需要使用自己的android:scrollbarTrackVertical和android:scrollbarThumbVertical可绘制对象来覆盖它们。您可以在代码中或通过样式来实现。

这是一个链接,展示了如何创建自定义按钮。滚动条的原理类似。


我不想设置自己的样式,我想知道如何使用代码完成功能来使用android:scrollbars="vertical"。就像android:text一样,我可以使用代码(View)setText()。 - pengwang

0

编程方式:

RecyclerView mRecyclerView =rootView.findViewById(R.id.your-recycler-view);
if(mRecyclerView!=null){
  mRecyclerView.setVerticalScrollBarEnabled( true );
}

在XML中:

<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:scrollbars="vertical"
android:layout_height="wrap_content" />

其他滚动条:

android:scrollbars="vertical"
android:scrollbars="horizontal"
android:scrollbars="vertical|horizontal"

这应该是被接受的答案。在我的情况下,XML中必须有android:scrollbars="vertical"才能使RecyclerView.setVerticalScrollBarEnabled起作用。 - kukabi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接