【发布时间】:2013-11-27 03:50:04
【问题描述】:
我有一个ListView,其中包含一个ArrayAdapter,其中包含一天中每个小时的项目,我需要它将包含当前小时的项目放置在 ListView 可见区域的中心。
我试过setSelection,但它会将项目放在顶部而不是中心。
有什么方法可以在不计算布局高度等的情况下做到这一点?
现在我正在使用这种方法,因为我知道这些物品有 40dip 高,但它们并不总是 40dip 高。
private void centerListView() {
final Calendar c = Calendar.getInstance();
final int hour = c.get(Calendar.HOUR_OF_DAY);
final int listViewProgrammerPixels = listViewProgrammer.getHeight();
final int itemPixels = (int) (40 * getResources().getDisplayMetrics().density + 0.5f);
final int pixelsFromTop = (listViewProgrammerPixels - itemPixels) / 2;
listViewProgrammer.setSelectionFromTop(hour, pixelsFromTop);
}
【问题讨论】:
-
显示列表项代码.show your code
-
有很多方法可以做到这一点。需要看代码
-
您可以将该项目的内容复制到另一个
View,然后将其gravity属性设置为center。 -
用我目前的做法编辑了我的问题。
标签: android android-listview android-arrayadapter centering