小编Fre*_*ric的帖子

Android:在自定义视图中启用滚动条

我已经实现了一个扩展RelativeLayout的自定义布局.它显示了许多在运行时创建的不同元素,并且可以使用scrollTo()和scrollBy()在两个维度中滚动.滚动有效,现在我想添加标准的Android滚动条.

使用Scrollviews是不可能的,因为我需要在2维中滚动布局,所以我尝试按照此处的描述进行操作:Android:在基于画布的视图上启用滚动条

我已经使用一些(虚假)值实现了所有的compute*方法并启用了滚动条.但我仍然无法让他们出现.任何想法可能是什么问题?

在各种邮件列表和SO上有很多这样的问题,但到处答案似乎是"1.调用setHorizo​​ntalScrollbarEnabled(true),2.实现所有的计算*方法,3.调用awakenScrollbars()".据我所知,我已经完成了所有这些,甚至尝试使用initializeScrollbars()但没有任何反应,文档也没有提供任何帮助.

public NodeLayout(Context context) {
    super(context);

    setVerticalScrollBarEnabled(true);
    setHorizontalScrollBarEnabled(true);

    TypedArray a = context.obtainStyledAttributes(R.styleable.View);
    initializeScrollbars(a);
    a.recycle();
}

@Override
protected int computeHorizontalScrollExtent() {
    return 5;
}

@Override
protected int computeHorizontalScrollOffset() {
    return 10;
}

@Override
protected int computeHorizontalScrollRange() {
    return 50;
}

@Override
protected int computeVerticalScrollExtent() {
    return getHeight() / 2;
}

@Override
protected int computeVerticalScrollOffset() {
    return getHeight() / 2;
}

@Override
protected int computeVerticalScrollRange() {
    return getHeight();
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    awakenScrollBars();
    invalidate();
    return …
Run Code Online (Sandbox Code Playgroud)

java android scrollbar

6
推荐指数
1
解决办法
7189
查看次数

标签 统计

android ×1

java ×1

scrollbar ×1