2013-01-04 154 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

很高兴听到! –