2013-01-04 37 views
5

Ben bir Acemi Android Programcısıyım ve ben JFeinstein's awesome sliding menu ile çalışıyorum ve uygulamalarımda nasıl çalıştığını ve uyguladığımı anlamaya çalışıyorum ama tüm uygulamalarımda arkadan görünüm% 100'ü kaplıyor görünümünün üstünde.SlidingMenu düzgün şekilde gösterilmiyor

Ayrıca, yukarıdaki görünüme geri dönmenin tek yolu, geri düğmesine basmaktır, bu nedenle "sliding" geri dönmez. Eğer doğru anlarsam, bu BehindViewOffset tarafından kontrol edilmeli, ancak işe yaramayacak gibi görünmüyor.

İşte benim MainActivity var:

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); 

    } 
} 

Ve düzen xml: Neyse, burada küçük örnek kod var ben daha temsilcisi kazanmak kadar

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

Ne yazık ki bir ekran görüntüsü gönderebilir olamaz!

Düzenleme: Eklendi 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'" eklediniz mi? 'R.dimen.slidingmenu_offset.' uygun şekilde na mi? –

+0

Evet, ama sadece onu yazıya ekledim. –

cevap

8

Ok, ben örneğin yakından bakmak alan ve sonunda için

SlidingMenu menu = new SlidingMenu(this); 

değiştirerek çalışma var:

SlidingMenu menu = getSlidingMenu(); 

İşte ana aktivitenin en son kodu 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

Teşekkürler kardeşim. Aynı problemle karşı karşıya kaldım ve çözümünüz benim için de ne düzeldi? –

+0

Bunu duyduğuma sevindim! –

İlgili konular