0

我创建了由驻留菜单(https://github.com/SpecialCyCi/AndroidResideMenu)显示的片段作为某些菜单项的内容。问题在于,在Android 5+上,ExpandableListView (绿框)的高度未正确测量,它切断了下方系统导航按钮的底部条(大约高度)。看起来滚动框在这些按钮下方,我无法滚动显示这部分。

测量不正确的 ExpandableListView

现在。经过多次尝试,我得到了几乎正确测量的视图。我在片段的 onCreateView 中添加了:

if(Build.VERSION.SDK_INT >= 21) {
    view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}

ExpandableListView 不在系统按钮下,但我在视图顶部有空白区域。不幸的是,即使我切换菜单项,这个空白也会留在那里。

任何人都可以分享想法可能出了什么问题吗?

顶部的空白区域

4

2 回答 2

0

我也遇到过这个问题。(Android ResideMenu 库,Fragment 底部有裁剪问题)正如你所说,在 Lollipop 设备上测量的视图高度不正确。我找到了部分解决方案。当我试图为原生导航栏提供透明度时,我在我的 values-v21 文件夹中设置了android:windowTranslucentNavigation true。然后视图高度开始正确计算,但导航栏的颜色发生了变化。

<resources>
        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="android:actionBarStyle">@style/Widget.AppCompat.ActionBar</item>

     <item name="android:windowTranslucentNavigation">true</item>

        </style>
</resources>
于 2015-03-26T11:45:48.950 回答
0

嗨,经过大约一周的工作,我找到了完美的解决方案。

主要活动

protected void onCreate(Bundle savedInstanceState)

{
etWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
mToolbar = (Toolbar) findViewById(R.id.toolbar);

((LinearLayout.LayoutParams)

mToolbar.getLayoutParams()).setMargins(0, getStatusBarHeight(this), 0, 0);

}

public static int getStatusBarHeight(Context context) {
    int result = 0;
    int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
    if (resourceId > 0) {
        result = context.getResources().getDimensionPixelSize(resourceId);
    }
    return result;
}

AndroidManifest 活动添加此行

<activity
            android:name=".activity.Main"
            android:configChanges="orientation|screenSize"
             android:windowSoftInputMode="adjustPan"
             android:fitsSystemWindows="true"
               android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

风格V21

<style name="myTheme" parent="FridayfairTheme.Base">
      <item name="android:windowTranslucentNavigation">true</item>
</style>
于 2015-06-14T16:06:30.247 回答