2013-04-20 39 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