我创建了一个由驻留菜单(https://github.com/SpecialCyCi/AndroidResideMenu)显示的片段作为某个菜单项的内容。问题是,在 Android 5 + ExpandableListView(绿色框架)的高度未正确测量时,它会切断下方系统导航按钮的底部条带(大约高度)。看起来滚动框架在这些按钮下面,我无法滚动显示此部分。
现在。经过多次尝试,我得到了几乎正确测量的视图。 我已经在我的片段的onCreateView中添加了:
if(Build.VERSION.SDK_INT >= 21) {
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}
ExpandableListView不在系统按钮下,但我在视图顶部有空白。不幸的是,即使我切换菜单项,这个空白区也会停留在那里。
任何人都可以分享可能出错的想法吗?
答案 0 :(得分:0)
我也遇到过这个问题。 (Android ResideMenu library, bottom of Fragment has Cropping issue) 正如你所说的查看身高 在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>
答案 1 :(得分: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>
styleV21
<style name="myTheme" parent="FridayfairTheme.Base">
<item name="android:windowTranslucentNavigation">true</item>
</style>