nit*_*oel 26 performance android android-layout android-fragments android-5.0-lollipop

你可以看到我的"Got It"按钮位于导航栏后面.无法修复它!我试过了
<item name="android:fitsSystemWindows">true</item>
Run Code Online (Sandbox Code Playgroud)
以及在布局文件中设置它.
我在21世纪的主题是:
<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:fitsSystemWindows">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
与整个应用程序中的所有屏幕相同的情况.
请帮忙.
nit*_*oel 34
这是解决方案.
通过在value-21 style.xml中添加这些属性,可以解决大多数布局问题
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:fitsSystemWindows">true</item>
Run Code Online (Sandbox Code Playgroud)
对于其他人,我计算了导航栏的高度并为我的视图添加了边距.
public static int getSoftButtonsBarSizePort(Activity activity) {
// getRealMetrics is only available with API 17 and +
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
int usableHeight = metrics.heightPixels;
activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int realHeight = metrics.heightPixels;
if (realHeight > usableHeight)
return realHeight - usableHeight;
else
return 0;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
注意: 通过使用上述解决方案一切正常,但我也在我的应用程序中使用PopupWindow.PopupWindow的布局搞砸了android L.在这里寻找问题和解决方案
就这么简单,只需将这一行添加到您的父布局 xml 中:
android:fitsSystemWindows="true"
Run Code Online (Sandbox Code Playgroud)
为了获得良好的用户体验,您不需要使用阻止导航键区域 android:windowTranslucentNavigation
相反,这里是更好的解决方案,如果您使用ResideMenu库,那么只需在ResideMenu.java中添加此方法
@Override
protected boolean fitSystemWindows(Rect insets) {
int bottomPadding = insets.bottom;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Resources resources = getResources();
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
bottomPadding += resources.getDimensionPixelSize(resourceId);
}
}
this.setPadding(viewActivity.getPaddingLeft() + insets.left, viewActivity.getPaddingTop() + insets.top,
viewActivity.getPaddingRight() + insets.right, viewActivity.getPaddingBottom() + bottomPadding);
insets.left = insets.top = insets.right = insets.bottom = 0;
return true;
}
Run Code Online (Sandbox Code Playgroud)
如果您正在使用SlidingMenu库,则将mod更改为SLIDING_CONTENT:
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
Run Code Online (Sandbox Code Playgroud)
希望它能节省你的时间
| 归档时间: |
|
| 查看次数: |
25778 次 |
| 最近记录: |