2013-01-04 198 views
5

我是一名初學Android程序員,我正在與JFeinstein's awesome sliding menu一起玩弄,試圖弄清楚它是如何工作的並在我的應用程序中實現它,但在我的所有實現中,後面的視圖覆蓋了100%的在視圖之上。SlidingMenu無法正常顯示

此外,回到上述視圖的唯一方法是按下後退按鈕,因此沒有"sliding"。如果我理解正確,這應該由BehindViewOffset控制,但我似乎沒有得到它的工作。無論如何,這裏有一個小的示例代碼:

這裏是我的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); 

    } 
} 

而且佈局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> 

可悲的是,直到我掙更多的代表,我不能張貼的截圖!

編輯:添加了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> 
+0

您是否正確添加了'example/res/values/dimen.xml'? 'R.dimen.slidingmenu_offset.'正確提到na? –

+0

是的,但以防萬一我將它添加到帖子。 –

回答

8

好了,我把在該示例的密切關注和finnaly得到它通過改變

SlidingMenu menu = new SlidingMenu(this); 

的工作:

SlidingMenu menu = getSlidingMenu(); 

所以這裏是主要活動的最終代碼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); 


} 
+1

感謝兄弟。我面臨着同樣的問題,您的解決方案也是爲我解決了這個問題! –

+0

很高興聽到! –