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

时间:2010-08-28 07:48:34

标签: android

我想以编程方式在scrollbars中动态设置EditText,但我没有将此api视为setscrollbars。谁能告诉我这是否可以通过编程方式完成?

android:scrollbars="vertical"

这可能吗?如何以编程方式实现此目标?

4 个答案:

答案 0 :(得分:3)

我一直在寻找一种以编程方式执行此操作的方法。

似乎http://developer.android.com/reference/android/view/View.html#attr_android:scrollbars 不可能,因为没有提到相关方法。

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

View.setVerticalScrollBarEnabled(boolean)

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

我现在想的是有两个布局:一个属性设置为“none”,一个设置为“vertical”。然后在代码中我可以决定使用哪个。

答案 1 :(得分:1)

    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);

答案 2 :(得分:0)

你必须用自己的方法覆盖android:scrollbarTrackVertical和android:scrollbarThumbVertical drawables。您可以在代码或样式中执行此操作。

这是link,显示了如何自定义按钮。滚动条的原理类似。

答案 3 :(得分: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"