Android:创建活动界面后调用的方法

时间:2013-11-04 10:08:10

标签: android android-activity

我想在创建活动的图形界面后执行一些任务。我需要知道一些视图的确切高度和宽度,并根据宽度和高度更改其中一些视图的layoutParams。在onResume方法中,视图的所有参数仍然等于0 ...

至于现在,我正在使用从onCreate开始运行一段时间的延迟任务,但这根本不是一个好的解决方案......

活动创建中调用的最后一个方法是什么?这种方法的视图宽度和高度是否可用?

4 个答案:

答案 0 :(得分:8)

在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

                    }
                });

答案 1 :(得分:2)

onResume()是最后一个,但也许更好的是onViewCreated()。它的优点是每次重新获得焦点时都不会调用它。但是尝试在你需要的布局元素上获取post()内部视图的属性。例如:

        textView.post(new Runnable() {
            @Override
            public void run() {
                 // do something with textView
            }
        });

答案 2 :(得分:1)

活动开始时运行的最后一个方法是onResume()。 您可以在Activity lifecycle找到它。

如果这对您来说不够好,请从此onResume()运行延迟任务,您就可以了。

答案 3 :(得分:0)

在onResume()方法的最后一行获取所需的所有数据。它应该向您展示您需要的一切。