ave*_*ini 7 android android-activity
我想在创建活动的图形界面后执行一些任务.我需要知道一些视图的确切高度和宽度,并根据宽度和高度更改其中一些视图的layoutParams.在该onResume方法中,视图的所有参数仍然等于0 ...
至于现在,我正在使用延迟的任务,该任务在一段时间之后运行,onCreate但这根本不是一个好的解决方案......
活动创建中调用的最后一个方法是什么?这种方法的视图宽度和高度是否可用?
A. *_*dam 10
在onCreate()中调用它
final View rootView = getWindow().getDecorView().getRootView();
rootView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//by now all views will be displayed with correct values
}
});
Run Code Online (Sandbox Code Playgroud)
onResume() 是最后一个,但也许更好的是 onViewCreated()。它的优点是每次重新获得焦点时都不会调用它。但是尝试在您需要的布局元素上获取 post() 内部视图的属性。例如:
textView.post(new Runnable() {
@Override
public void run() {
// do something with textView
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9919 次 |
| 最近记录: |