Android滑动菜单:菜单占据整个屏幕,不会缩回

时间:2014-02-06 02:14:23

标签: android view slidingmenu

我遇到的问题是我的滑动菜单有什么理由占据全屏......我环顾四周,有人说你需要设置 setBehindOffsetRes 要么 setBehindOffset 让它工作..我有,但它仍然无法正常工作..

主要活动:

package com.quapps.theinitiative;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
import com.quapps.theinitiative.R;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends SlidingFragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setBehindContentView(R.layout.menu_frame);

        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        menu.setShadowWidthRes(R.dimen.shadow_width);
        menu.setShadowDrawable(R.drawable.shadow);
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        menu.setFadeDegree(0.35f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        menu.setMenu(R.layout.menu_frame);
        //menu.setBehindOffset(100);


    }
}

dimens.xml

<resources>

    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>

    <dimen name="slidingmenu_offset">60dp</dimen>
    <dimen name="list_padding">10dp</dimen>
    <dimen name="shadow_width">15dp</dimen>

</resources>

menu_frame.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/menu_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

我明白它可能是愚蠢的,我似乎无法找到它

4 个答案:

答案 0 :(得分:3)

设置SlidingMenu的宽度应该可以解决问题,这里是你如何在代码中完成的。

getSlidingMenu().setBehindWidthRes(300dp);

应在resource / dimen文件中指定300dp,因此在运行时它可以相应地转换为像素值。如果要直接指定像素,则只能使用“300”。

答案 1 :(得分:0)

menu_frame.xmlandroid:layout_width="match_parent"更改为android:layout_width="wrap_content"应该有效

答案 2 :(得分:0)

在menu.xml文件中

为wrapcontent添加宽度

答案 3 :(得分:0)

在resource / dimen文件中指定宽度,如100dp do work。你不能写getSlidingMenu().setBehindWidthRes(300),否则它会给资源找不到错误。