SlidingMenu无法正确显示 [英] SlidingMenu not showing properly

查看:220
本文介绍了SlidingMenu无法正确显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是一个初学者的Andr​​oid程序员,我与 JFeinstein的真棒滑动菜单玩弄周围,试图找出如何工作和我的应用程序执行,但在我所有的实现的背后视图涵盖了上述观点的100%。

此外,回去上述观点的唯一办法是preSS后退按钮,所以没有滑动回任。如果我理解正确的话,这应该由 BehindViewOffset 进行控制,但我似乎并没有得到它的工作。无论如何,这里有一个小样本code:

下面是我的 MainActivity

 公共类MainActivity扩展SlidingActivity {    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);        setBehindContentView(R.layout.testing);        填充();        SlidingMenu菜单=新SlidingMenu(本);
        menu.setMode(SlidingMenu.LEFT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        menu.setFadeDegree(0.35f);
        menu.attachToActivity(这一点,SlidingMenu.SLIDING_CONTENT);
        setSlidingActionBarEnabled(真);
        menu.setMenu(R.layout.testing);    }    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        开关(item.getItemId()){
        案例android.R.id.home:
            切换();
            返回true;
        默认:
            返回super.onOptionsItemSelected(项目);
        }
    }    私人无效的填充(){        LV的ListView =(ListView控件)findViewById(R.id.listView1);
        的String []值=新的String [] {一,二,三,四有,五
                六个一,七,八,九,十大};
        ArrayAdapter<串GT;适配器=新ArrayAdapter<串GT;(这一点,
                android.R.layout.simple_list_item_1,android.R.id.text1,价值观);
        lv.setAdapter(适配器);    }
}

和布局的xml:

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=垂直>    < ListView控件
        机器人:ID =@ + ID / ListView1的
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT>
    < /&的ListView GT;< / LinearLayout中>

可悲的是,直到我挣更多的代表,我不能张贴的截图!

编辑:新增了dimen.xml

 <资源>
    <扪NAME =slidingmenu_offset> 120dp< /扪>
    <扪NAME =list_padding> 10dp< /扪>
    <扪NAME =shadow_width> 15dp< /扪>
    <整数NAME =NUM_COLS> 1 LT; /整数GT;
< /资源>


解决方案

好了,所以我把这个例子的密切关注,并得到了finnaly它通过改变工作

  SlidingMenu菜单=新SlidingMenu(本);

为:

  SlidingMenu菜单= getSlidingMenu();

因此​​,这里是最后的code为主要activity's的onCreate:

  @覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);    setBehindContentView(R.layout.testing);    填充();    SlidingMenu菜单= getSlidingMenu();    menu.setMode(SlidingMenu.LEFT);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    menu.setShadowDrawable(R.drawable.shadow);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    setSlidingActionBarEnabled(真);
}

I'm a Beginner Android Programmer and I'm toying around with JFeinstein's awesome sliding menu, trying to figure out how it works and implement it in my apps but in all of my implementations the behind view covers 100% of the above view.

Also, the only way to go back to the above view is to press the back button, so no "sliding" back either. If I understand correctly, this should be controlled by the BehindViewOffset, yet I don't seem to be getting it to work. Anyway, here's a little sample code:

Here's my MainActivity:

public class MainActivity extends SlidingActivity {

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

        setBehindContentView(R.layout.testing);

        populate();

        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        menu.setFadeDegree(0.35f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        setSlidingActionBarEnabled(true);
        menu.setMenu(R.layout.testing);

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            toggle();
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

    private void populate() {

        ListView lv = (ListView) findViewById(R.id.listView1);
        String[] values = new String[] { "One", "Two", "Three", "Four", "Five",
                "Six", "Seven", "Eight", "Nine", "Ten" };
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, values);
        lv.setAdapter(adapter);

    }
}

And the layout 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:orientation="vertical" >

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

Sadly I can't post a screenshot until I earn more rep!

Edit: Added the dimen.xml

    <resources>
    <dimen name="slidingmenu_offset">120dp</dimen>
    <dimen name="list_padding">10dp</dimen>
    <dimen name="shadow_width">15dp</dimen>
    <integer name="num_cols">1</integer>
</resources>

解决方案

Ok, so I took a close look at the example and finnaly got it working by changing

SlidingMenu menu = new SlidingMenu(this);

for:

SlidingMenu menu = getSlidingMenu();

So here is the final code for the main activity´s onCreate:

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

    setBehindContentView(R.layout.testing);

    populate();

    SlidingMenu menu = getSlidingMenu();

    menu.setMode(SlidingMenu.LEFT);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    menu.setShadowDrawable(R.drawable.shadow);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    setSlidingActionBarEnabled(true);


}

这篇关于SlidingMenu无法正确显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆