代码之家  ›  专栏  ›  技术社区  ›  Andreas

以编程方式找出滚动条大小

  •  0
  • Andreas  · 技术社区  · 6 年前

    我使用一个自定义视图,添加滚动条如下:

    setHorizontalScrollBarEnabled(true);
    setVerticalScrollBarEnabled(true);
    
    TypedArray a = context.obtainStyledAttributes(R.styleable.View);
    initializeScrollbars(a);
    a.recycle()
    

    现在有没有办法找出滚动条的像素厚度?对于垂直滚动条,我想找出宽度,对于水平滚动条,我想找出高度,两者都以像素为单位。

    有没有一种方法可以通过编程来实现这一点?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Andreas    6 年前

    要回答我自己的问题,有几种方法可以通过编程获得滚动条大小:

    View.getScrollBarSize() [API 16]
    ViewConfiguration.getScaledScrollBarSize() [API 3]
    View.getHorizontalScrollbarHeight()
    View.getVerticalScrollbarWidth()
    

    有趣的是,只有后两个对我有效,并返回正确的大小(8像素)。上面两个返回20个像素,这与8个像素的实际滚动条大小不匹配。也许这与我以一种非正统的方式在自定义视图中以编程方式添加滚动条有关(请参见 here getHorizontalScrollbarHeight() getVerticalScrollbarWidth()

    推荐文章