我有这个活动,我需要在运行时做一些布局(在这个特定的实例中我需要设置指标边界(ExpandableListView.setIndicatorBound
),以便组指示符对齐到视图的右侧而不是默认左边。
我在Activity:onCreate
:
int viewWidth = mListView.getWidth();
int groupIndicatorWidth = getResources().getDrawable(R.drawable.up).getMinimumWidth();
mListView.setIndicatorBounds(viewWidth - groupIndicatorWidth, viewWidth);
app.fetchItems(this);
可以理解的是,viewWidth
在运行时变为0
。
我的问题是,当视图的子项被布局并且它们的维度有效时,我应该使用什么方法实现/重载?基本上在Windows上,我们通常将这些代码放在OnSize / OnResize中。
我找到了Activity:onPostCreate
和Activity:onPostResume
,但我也在文档中发现了这一点 - “应用程序通常不会实现此方法;它旨在让系统类在应用程序代码运行后进行最终初始化。“
修改
发现此主题列出了几个解决方法: Android: Need to use onSizeChanged for View.getWidth/Height() in class extending Activity
答案 0 :(得分:0)
最明显的方法是,当视图的大小发生变化时(在您的示例中为ListView),是扩展该视图并覆盖其onSizeChanged(int w, int h, int oldw, int oldh)
方法。