Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法测量底部导航栏的高度_Android_Bottomnavigationview - Fatal编程技术网

Android 无法测量底部导航栏的高度

Android 无法测量底部导航栏的高度,android,bottomnavigationview,Android,Bottomnavigationview,我正在尝试获取底部导航栏的高度,这样我就可以在栏上方显示的内容上设置底部边距。我的问题是它总是返回0。代码如下: navigation.post(new Runnable() { @Override public void run() { navHeight = navigation.getMeasuredHeight(); } }); FrameLayout

我正在尝试获取底部导航栏的高度,这样我就可以在栏上方显示的内容上设置底部边距。我的问题是它总是返回0。代码如下:

navigation.post(new Runnable() {
            @Override
            public void run() {
                navHeight = navigation.getMeasuredHeight();
            }
        });

        FrameLayout frame = findViewById(R.id.frame_container);
        ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) frame.getLayoutParams();
        params.setMargins(0, 0, 0, navHeight);
        frame.setLayoutParams(params);

我还尝试使用了
ViewTreeObserver
,但它也不起作用。

我只需要在run()方法中移动所有内容在您的
导航之后,立即运行post()
调用;您发布的
run()
方法尚未执行,因此尚未设置
navHeight
。一个可能的解决方案是将所有其他内容移动到
run()
中。是的,我忘了这个!我要试着把它修好,我现在觉得自己很蠢xD