2013-01-04 26 views
5

Jestem początkującym programistą Androida i bawię się przy pomocy JFeinstein's awesome sliding menu, próbując dowiedzieć się, jak to działa i zaimplementować go w moich aplikacjach, ale we wszystkich moich implementacjach widok z tyłu pokrywa 100% powyżej widoku.SlidingMenu nie wyświetla się poprawnie

Jedynym sposobem, aby powrócić do powyższego widoku, jest naciśnięcie przycisku Wstecz, więc nie można go cofnąć. Jeśli dobrze rozumiem, to powinno być kontrolowane przez BehindViewOffset, ale wydaje mi się, że nie działa. W każdym razie, tu jest trochę przykładowy kod:

Oto mój 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); 

    } 
} 

A xml układ:

<?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> 

Niestety nie mogę zamieścić zrzut ekranu, dopóki nie zarabiać więcej rep!

Edit: Dodano 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

Czy poprawnie dodano 'example/res/values ​​/ dimen.xml'? 'R.dimen.slidingmenu_offset'jest właściwie wspomniany na? –

+0

Tak, ale na wszelki wypadek dodałem go do postu. –

Odpowiedz

8

Ok, więc wziąłem się bliżej na przykład i finnaly dostał pracę zmieniając

SlidingMenu menu = new SlidingMenu(this); 

dla:

SlidingMenu menu = getSlidingMenu(); 

Oto ostateczny kod dla głównej działalności 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

Dzięki bro. Miałem do czynienia z tym samym problemem i twoje rozwiązanie było tym, co naprawiło to również dla mnie! –

+0

Miło to słyszeć! –

Powiązane problemy