我想创建我自己的复合视图。该视图将扩展一个LinearLayout,并在其中包含一个HorizontalScrollView。这个HorizontalScrollView将保存一个可以容纳几个TextView的父LinearLayout。帮助Compund View和onLayout和onMeasure(HorizontalScrollView)
我想实现的就像一个字母横向索引。通过上面的方法,它工作得很好。但这还不够。
现在字母A不能位于滚动的中心,因为它是第一个字母,而且不能向左滚动。我想要实现的是用户可以滚动到左侧,直到第一个字母(A)位于中间的点。当滚动到右侧和最后一个字母(Z)时,它的工作方式相同。
我很困惑如何做到这一点。我知道我可以在滚动中为内部LinearLayout设置填充,但我必须等到我知道滚动的宽度(它的大小是动态的,FILL_PARENT)。我可以在onLayout方法中获取这个大小,调用getMeasuredWidth。然后我可以使用所需的值更新内部的LinearLayout填充,但看起来像是尽管我更改了填充,但innerLayout的宽度不会更改。
我也曾尝试在A之前和Z之后添加2个间隔符(正视图),但范例是相同的。当我知道滚动的宽度时,我需要改变它的大小。
请帮忙! :D
我可以发布一些代码,如果需要的话。
编辑与图片:
所以我希望能够更多地向左滚动,直到刚刚字母A是在中间。
帮助!谢谢。
难道你不能直接使用图库,而不是你的自定义复合? – OcuS 2011-05-12 09:53:27
我对android很新颖。我尝试使用一个画廊,但我不知道该小部件是如何编辑的。我最终一次显示了一封信(我看不到右侧和左侧的字母)。无论如何,我会试一试。即使它与Gallery合作,我也想知道如何实现这样的事情。我来自iPhone开发,没有布局,但像这样的东西很简单。 – LocoMike 2011-05-12 10:29:22