Android fragment 布局完成膨胀

标签 android layout dynamic fragment

我想以编程方式向布局添加一些图形。我想根据 xml 布局文件 中其他图形元素的位置动态定位图形。

如果我尝试在 onCreateViewonViewCreated 中访问它们,布局中图形的位置均为 0。这可能是因为布局尚未完成膨胀。

我在哪里可以连接我的代码以确保 fragment 的布局已完成膨胀?

目前我已经使用 viewTreeObserver 解决了这个问题(见下面的代码),但这真的是最聪明的方法吗?

我在 fragment 中工作。

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {     
        View v = inflater.inflate(R.layout.myfrg, container, false);
        mMainLayoutCanvas = (RelativeLayout)v.findViewById(R.id.myfrg_mainlayout);
        mMainLayoutCanvas.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                initializeUI();
            }
        });
        return v;
    }

最佳答案

onCreateView 使 Fragment 的布局膨胀。您只能在 onCreateView 返回后才能找到 View 。 我会使用 onActivityCreated() 方法来查找 View ,然后更新/定位它们。

可能有一个完全不同的解决方案,我刚开始使用 Android

关于Android fragment 布局完成膨胀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16419996/

相关文章:

android - 构建类似 CSS 的 Android 微调器动画(Stacked ProgressBar 元素)

android - 如何在 SeekBar 中隐藏/显示拇指

java - 网站布局

html - 向右浮动第二个元素而不指定第一个元素的宽度?

python - 如何处理 python 杂散属性赋值

安卓工作室 3.2 金丝雀 14 : The following packages are not available "Package id platforms;android-28"

android - Admob 页面在 20 小时前停止显示统计信息

Android 自定义 View 大小

oracle - Oracle 中的动态列名

c - 动态地将内存分配给二维字符串数组