2014-05-16 6 views
7

के रूप में नहीं खींचा गया है मेरा एंड्रॉइड ऐप एक पूर्णस्क्रीन ओपनजीएल ES 2.0 ऐप है, इसलिए मुख्य सामग्री GLSurfaceView का एक कस्टम एक्सटेंशन है। गतिविधि लेआउट इस तरह दिखता है:DrawerLayout ListView GLSurfaceView के साथ सामग्री

<android.support.v4.widget.DrawerLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:id="@+id/drawer_layout"> 
    <FrameLayout android:id="@+id/content_frame" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" /> 
    <ListView android:id="@+id/left_drawer" 
     android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:choiceMode="singleChoice" 
     android:divider="@android:color/transparent" 
     android:dividerHeight="0dp" 
     android:background="#111" /> 
</android.support.v4.widget.DrawerLayout> 

मैं तो FrameLayout की addView पद्धति का उपयोग करके मेरी GLSurfaceView जोड़ें। यदि मैं ऐसा नहीं करता, तो दराज अपेक्षा के अनुसार काम करता है।

जब मैं इसे स्वाइप करता हूं तो सूची दृश्य को सही तरीके से खींच लिया जाता है, क्योंकि जब तक मैं इसे बाईं ओर स्वाइप नहीं करता तब तक मैं अब तक GLSurfaceView से बातचीत नहीं कर सकता। लेकिन यह बिल्कुल प्रदर्शित नहीं होता है, जैसे कि GLSurfaceView हमेशा इसके रास्ते पर प्रस्तुत किया जाता है।

मैं एक GLSurfaceView के साथ काम करने के लिए एक DrawerLayout कैसे प्राप्त करूं?

उत्तर

16

मुझे अभी भी एक ही समस्या का सामना करना पड़ा है, और मुझे इसके लिए काफी मूर्खतापूर्ण समाधान मिला है। यह समस्या केवल DrawerLayouts को प्रभावित करती है, न कि नियमित दृश्य। तो बस अपने GLSurfaceView पर एक खाली दृश्य डालें, इसे दराज से दूर मुखौटा करने के लिए।

यहाँ आप के लिए एक नमूना के रूप में मेरे लेआउट फ़ाइल नीचे छीन लिया है:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawerLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <GLSurfaceView 
      android:id="@+id/glSurfaceView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </RelativeLayout> 


    <FrameLayout 
     android:id="@+id/frameLayoutDrawer" 
     android:layout_width="@dimen/navigation_drawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="end" 
     android:background="@android:color/white" /> 
</android.support.v4.widget.DrawerLayout> 
+1

आप श्रीमान अपनी प्रतिष्ठा अर्जित की है, अद्भुत काम करता है! उन लोगों के लिए एक त्वरित नोट जो गतिशील रूप से 'जीएल व्यू' जोड़ते हैं: इंडेक्स के साथ 'व्यू ग्रुप' में जोड़ते समय इसे पृष्ठभूमि में रखें। इस तरह: 'myRelativeLayout.addView (myGlView, 0); ' – avalancha

संबंधित मुद्दे