使用填充重新定位 ListView 的滚动条

Posted

技术标签:

【中文标题】使用填充重新定位 ListView 的滚动条【英文标题】:Reposition scroll bar of ListView with padding 【发布时间】:2011-09-29 11:05:18 【问题描述】:

我有一个ListView,右侧(和左侧)有填充。

目前列表如下所示:

-----------------  |
| ROW         | |  |
|-------------| |  |
| ROW         | |  |
|-------------|#|  |
| ROW         |#|  |
|-------------| |  |
| ROW         | |  |
-----------------  |

最右边的行是屏幕的边缘,#s 是滚动条,它右侧的空白是ListView 的右侧填充。

滚动条位于填充右侧,如下所示:

                    _
-----------------  | |
| ROW           |  | |
|---------------|  | |
| ROW           |  |#|
|---------------|  |#|
| ROW           |  |#|
|---------------|  | |
| ROW           |  | |  
-----------------  |_|

是否可以像这样移动滚动条,或者我必须更改每一行的布局以具有正确大小的不可见边框?

请注意,目前每一行都有一个由适配器设置的单独背景,因为我正在为我的 ListView 制作一个浮动窗口,不幸的是,我的一个屏幕要求我这样做才能让它看起来像我想要。

【问题讨论】:

为以后的读者澄清一下:outsideOverlay 不会改变列表中项目的水平位置; outsideInset 添加一些填充,稍微移动项目的右侧边缘。 【参考方案1】:

试试这个:

<ListView
    ...
    android:scrollbarStyle="outsideOverlay" />

【讨论】:

如果我使用它,我的滚动条将不再显示。它只是消失了 我使用了 android:scrollbarStyle="outsideInset",它在 HTC Desire 上运行良好,但在 Galaxy S 上却不行。请帮我解决这个问题。 +1。如果它对您不起作用,请确保您没有在 ListView 中使用任何 margin attributes 在 TextView 中可以很好地使用填充,而不是边距。【参考方案2】:

将此添加到您的列表视图

android:scrollbarStyle="outsideInset"

它会添加一点填充,滚动条会在外面

【讨论】:

我想在右侧有填充。这个解决方案不适合我

以上是关于使用填充重新定位 ListView 的滚动条的主要内容,如果未能解决你的问题,请参考以下文章

如何防止滚动条重新定位网页?

请问:C# listView控件如何判断滚动条的位置?判断滚动条在控件的最下面?

如何启用垂直滚动的滚动条并禁用水平滚动?

vb的listview添加滚动条

如何使用JS控制DIV内容的滚动条

C#怎么给listview添加滚动条