Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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 - Fatal编程技术网

Android 滑动菜单空白

Android 滑动菜单空白,android,Android,我在我的项目中使用jfeinstein10滑动菜单库,一切正常,只是当我在某些设备上运行我的应用程序时,在保存listview的片段顶部有一个空白,下面是一张图片: 下面是我设置滑动菜单的代码: setBehindContentView(R.layout.menu_frame); FragmentTransaction fragTransaction = mFragmentManager.beginTransaction(); fragMenu = new Fragme

我在我的项目中使用jfeinstein10滑动菜单库,一切正常,只是当我在某些设备上运行我的应用程序时,在保存listview的片段顶部有一个空白,下面是一张图片:

下面是我设置滑动菜单的代码:

    setBehindContentView(R.layout.menu_frame);
    FragmentTransaction fragTransaction = mFragmentManager.beginTransaction();
    fragMenu = new FragmentMenu();
    fragTransaction.replace(R.id.menu_frame, fragMenu);
    fragTransaction.commit();

    SlidingMenu sm = getSlidingMenu();
    sm.setShadowWidthRes(R.dimen.shadow_width);
    sm.setShadowDrawable(R.drawable.shadow);
    sm.setBehindOffsetRes(R.dimen.actionbar_home_width);
    setSlidingActionBarEnabled(true);

    final ActionBar mActionBar = getSupportActionBar();
    mActionBar.setHomeButtonEnabled(true);
    mActionBar.setDisplayHomeAsUpEnabled(true);
这将是我的片段布局的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/fondoRowsMenuIzquierdo" >

<ExpandableListView
    android:id="@+id/expListView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:cacheColorHint="@color/fondoRowsMenuIzquierdo"
    android:childDivider="@color/fondoRowsChildMenuIzquierdo"
    android:choiceMode="singleChoice"
    android:divider="@color/separadoresMenuIzquierdo"
    android:dividerHeight="1dp"
    android:drawSelectorOnTop="true"
    android:groupIndicator="@null" />

</LinearLayout>


有人知道如何删除空白吗?

我解决了这个问题,更新到最新的滑动菜单库:。但是这个更新带来了另一个问题

在SlidingMenu.java中有以下代码:

public void manageLayers(float percentOpen) {
    if (Build.VERSION.SDK_INT < 11) return;

    boolean layer = percentOpen > 0.0f && percentOpen < 1.0f;
    final int layerType = layer ? View.LAYER_TYPE_HARDWARE : View.LAYER_TYPE_NONE;

    if (layerType != getContent().getLayerType()) {
        mHandler.post(new Runnable() {
            public void run() {
                Log.v(TAG, "changing layerType. hardware? " + (layerType == View.LAYER_TYPE_HARDWARE));
                getContent().setLayerType(layerType, null);
                getMenu().setLayerType(layerType, null);
                if (getSecondaryMenu() != null) {
                    getSecondaryMenu().setLayerType(layerType, null);
                }
            }
        });
    }
public void管理层(浮动百分比打开){
if(Build.VERSION.SDK_INT<11)返回;
布尔层=percentOpen>0.0f&&percentOpen<1.0f;
最终int layerType=图层?视图。图层类型\硬件:视图。图层类型\无;
如果(layerType!=getContent().getLayerType()){
mHandler.post(新Runnable(){
公开募捐{
Log.v(标记“更改layerType.hardware?”+(layerType==View.LAYER\u TYPE\u hardware));
getContent().setLayerType(layerType,null);
getMenu().setLayerType(layerType,null);
如果(getSecondaryMenu()!=null){
getSecondaryMenu().setLayerType(layerType,null);
}
}
});
}
如果您在蜂巢或以前的API版本中使用此库,则此代码不允许您与滑动菜单中的视图交互,您必须更改此验证:

if (Build.VERSION.SDK_INT < 11) return;
if(Build.VERSION.SDK_INT<11)返回;
为此:

if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB_MR2)return;

if(Build.VERSION.SDK_INT我在更新到最新的SlidingMenu库时解决了此问题:。但是此更新出现了另一个问题

在SlidingMenu.java中有以下代码:

public void manageLayers(float percentOpen) {
    if (Build.VERSION.SDK_INT < 11) return;

    boolean layer = percentOpen > 0.0f && percentOpen < 1.0f;
    final int layerType = layer ? View.LAYER_TYPE_HARDWARE : View.LAYER_TYPE_NONE;

    if (layerType != getContent().getLayerType()) {
        mHandler.post(new Runnable() {
            public void run() {
                Log.v(TAG, "changing layerType. hardware? " + (layerType == View.LAYER_TYPE_HARDWARE));
                getContent().setLayerType(layerType, null);
                getMenu().setLayerType(layerType, null);
                if (getSecondaryMenu() != null) {
                    getSecondaryMenu().setLayerType(layerType, null);
                }
            }
        });
    }
public void管理层(浮动百分比打开){
if(Build.VERSION.SDK_INT<11)返回;
布尔层=percentOpen>0.0f&&percentOpen<1.0f;
最终int layerType=图层?视图。图层类型\硬件:视图。图层类型\无;
如果(layerType!=getContent().getLayerType()){
mHandler.post(新Runnable(){
公开募捐{
Log.v(标记“更改layerType.hardware?”+(layerType==View.LAYER\u TYPE\u hardware));
getContent().setLayerType(layerType,null);
getMenu().setLayerType(layerType,null);
如果(getSecondaryMenu()!=null){
getSecondaryMenu().setLayerType(layerType,null);
}
}
});
}
如果您在蜂巢或以前的API版本中使用此库,则此代码不允许您与滑动菜单中的视图交互,您必须更改此验证:

if (Build.VERSION.SDK_INT < 11) return;
if(Build.VERSION.SDK_INT<11)返回;
为此:

if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB_MR2)return;

如果(Build.VERSION.SDK_INT更改滑动菜单库中colors.xml的值

更改滑动菜单库中colors.xml的值

对我来说,它工作如下:

if (Build.VERSION.SDK_INT >= 21) {
    topPadding = insets.top;
 }
在项目中/../slidingmenu/src/com.slidingmenu.lib/slidingmenu.java

protected boolean fitSystemWindows(Rect insets) {
哪里有

int topPadding = getPaddingTop() + insets.top;
int bottomPadding = getPaddingBottom() + insets.bottom;
添加以下内容:

if (Build.VERSION.SDK_INT >= 21) {
    topPadding = insets.top;
 }
如果存在问题,您还可以修复底部填充或任何其他填充。如果您的问题与底部导航栏有关,您可以检查高度并在同一文件中修复填充添加以下内容:

    if (Build.VERSION.SDK_INT >= 21) {
        Resources resources = getContent().getResources();
        int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
        if (resourceId > 0) {
            bottomPadding += resources.getDimensionPixelSize(resourceId);
        }
    }

对我来说,它的作用如下:

if (Build.VERSION.SDK_INT >= 21) {
    topPadding = insets.top;
 }
在项目中/../slidingmenu/src/com.slidingmenu.lib/slidingmenu.java

protected boolean fitSystemWindows(Rect insets) {
哪里有

int topPadding = getPaddingTop() + insets.top;
int bottomPadding = getPaddingBottom() + insets.bottom;
添加以下内容:

if (Build.VERSION.SDK_INT >= 21) {
    topPadding = insets.top;
 }
如果存在问题,您还可以修复底部填充或任何其他填充。如果您的问题与底部导航栏有关,您可以检查高度并在同一文件中修复填充添加以下内容:

    if (Build.VERSION.SDK_INT >= 21) {
        Resources resources = getContent().getResources();
        int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
        if (resourceId > 0) {
            bottomPadding += resources.getDimensionPixelSize(resourceId);
        }
    }

请显示布局xml文件请显示布局xml文件