2013-04-20 70 views
0

我试图用Jeremy Feinstein的SlidingMenu库开发一个应用程序。我所做的所有工作都是按照Github说明中描述的正确方式完成的。一切正常,但问题是,当我点击操作栏主页按钮打开滑块时,它覆盖了整个屏幕。我希望它像Facebook应用程序中的Facebook滑块一样打开。我的代码如下:jeremy feinstein的SlidingMenu的实现

public class MainActivity extends SlidingFragmentActivity { 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_main); 


    //Hide title bar 
    getSupportActionBar().setDisplayShowTitleEnabled(true); 

    //Enable home button 
    getSupportActionBar().setHomeButtonEnabled(true); 

    //Home as up display 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    // getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 


    setBehindContentView(R.layout.menu_frame); 

    //SlidingMenu menu=getSlidingMenu(); 
    SlidingMenu menu=new SlidingMenu(this); 
    //menu = new SlidingMenu(MainActivity.this); 
    menu.setMode(SlidingMenu.LEFT); 
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); 
    setSlidingActionBarEnabled(true); 
    menu.setShadowWidth(5); 
    menu.setFadeDegree(0.0f); 
    menu.attachToActivity(MainActivity.this, SlidingMenu.SLIDING_CONTENT); 
    menu.setBehindWidth(10); 
    menu.setBehindOffset(10); 
    menu.setBehindScrollScale(0.25f); 
    menu.setMenu(R.layout.menu_frame); 


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


} 

回答

0

你可以使用behindOffsetbehindWidthtouchModeAbove。 如果你使用它作为一个视图,你可以这样做(在你的布局文件):

sliding:behindOffset="@dimen/YOUR_OFFSET" 
sliding:behindWidth="@dimen/YOUR_WIDTH" 
sliding:touchModeAbove="margin" 

进一步解释

touchModeAbove - 即指定什么屏幕部分是可触摸当上述枚举视图正在显示。保证金仅指左边界。全屏显示整个屏幕。默认值是保证金。

behindOffset - 一个维度,表示当后视图显示时您希望上述视图显示的像素数量。默认为0.

behindWidth - 表示后视图宽度的尺寸。默认值是屏幕的宽度(相当于behindOffset = 0)。

+0

非常感谢您的回答。我现在在代码和工作中使用了它。 – abhayd 2013-04-20 07:01:02

-2

在代码:

// SlidingMenu菜单= getSlidingMenu();
SlidingMenu menu = new SlidingMenu(this);

只需在第一行删除//因为此时您需要一个实例化的对象。

删除第二行,这是所有。 在第二行你正在创建一个新的对象,这并不是必要的...。滑动菜单对象获取一旦你设置在内容视图后面。

我得到了同样的问题,并解决这个问题。

+1

不欢迎,请! – 2013-12-03 02:50:07