2011-11-15 17 views
5

मैं एक एप्लिकेशन शुरू करने की कोशिश कर रहा हूं और मैं जो चाहता हूं उसे करने के तरीके पर खो गया हूं।एंड्रॉइड स्लाइडिंग पैनल

यह जो मैं चाहता

left and right red sliders ; main white content

दोनों लाल पैनलों और पक्षों के लिए स्लाइड करने के लिए सक्षम होना चाहिए सफेद एक का विस्तार करना चाहिए अगर उन्हें (या दोनों) उनमें से एक संकुचित हो जाता है, पर कब्जा कि पैनल है अंतरिक्ष। जब मेरे पास स्क्रीन पर लाल पैनल होते हैं, तो सफेद पैनल सभी सामग्री दिखाता है और किसी भी पैनल के नीचे नहीं होता है।

मैंने अब तक क्या प्रयास किया है: मैंने दो SlidingDrawer एस के साथ प्रयास करके शुरुआत की, लेकिन सफेद पैनल लाल वालों के पीछे हो गया, इसलिए, कोई भाग्य नहीं है। इसके बाद मैंने 2 LinearLayouts (लाल पैनल) और RelativeLayout (सफेद पैनल) के साथ प्रयास किया, और बटन के साथ लेआउट की चौड़ाई बदलने की कोशिश की (जैसे शीर्ष पर छवि पर है)। इससे हमेशा ऐसी समस्याएं होती हैं जिन्हें मैं नहीं जानता था कि कैसे हल किया जाए।

सुझाव?

संपादित करें: SlidingDrawer उदाहरण के xml:

<LinearLayout 
android:id="@+id/LinearLayout01" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:gravity="bottom" 
android:background="#FFFFFFFF"> 
<SlidingDrawer 
    android:layout_width="100dip" 
    android:id="@+id/SlidingDrawer" 
    android:handle="@+id/slideHandleButton" 
    android:content="@+id/contentLayout" 

    android:layout_height="fill_parent" 
    android:orientation="horizontal"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:id="@+id/contentLayout" 
     android:orientation="horizontal" 

     android:background="#C0C0C0" 
     android:layout_height="wrap_content"> 
     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:text="Meio" 
      android:layout_toRightOf="@+id/buttonEsq" /> 
    </LinearLayout> 
    <Button 
     android:layout_width="30dip" 
     android:layout_height="30dip" 
     android:id="@+id/slideHandleButton" 
     android:background="@drawable/arrowup">   
    </Button> 
</SlidingDrawer> 
</LinearLayout> 

और LinearLayout उदाहरण के xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="horizontal" > 

    <RelativeLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent"     
    android:orientation="horizontal" 
    android:layout_toLeftOf="@+id/linearLayout3" 
    android:layout_toRightOf="@+id/linearLayout1" 
    android:background="#FFFFFFFF"> 
    <Button 
     android:id="@+id/buttonEsq" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 


     android:text="v--" /> 
    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="Meio" 
     android:layout_toRightOf="@+id/buttonEsq" /> 

    <Button 
     android:id="@+id/buttonDir" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:layout_toRightOf="@+id/textView1" 
     android:text="--v" /> 
</RelativeLayout> 
<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="50dip" 
    android:layout_height="fill_parent" 
    android:layout_alignParentLeft="true" 


    android:background="#FFFF0000"> 
    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Esquerda" /> 
</LinearLayout> 



<LinearLayout 
    android:id="@+id/linearLayout3" 
    android:layout_width="50dip" 
    android:layout_height="fill_parent" 
    android:layout_alignParentRight="true" 



    android:background="#FFF00000"> 
    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Direita" /> 
</LinearLayout> 

</RelativeLayout> 

एंड्रॉयड कोड (टिप्पणी की भाग 1 उदाहरण के कोड है) :

public class Main extends Activity { 
Button slideHandleButton; 
Button slideHandleButtonLeft; 
Button slideHandleButtonRight; 
SlidingDrawer slidingDrawer; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.mainlayouts); 
/* slideHandleButton = (Button) findViewById(R.id.slideHandleButton); 
    slidingDrawer = (SlidingDrawer) findViewById(R.id.SlidingDrawer); 

    slidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() { 
     @Override 
     public void onDrawerOpened() { 
      slideHandleButton.setBackgroundResource(R.drawable.arrowdown); 
     } 
    }); 

    slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() { 
     @Override 
     public void onDrawerClosed() { 
      slideHandleButton.setBackgroundResource(R.drawable.arrowup); 
     } 
    });*/ 
    slideHandleButtonLeft = (Button) findViewById(R.id.buttonEsq); 
    slideHandleButtonLeft.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      LinearLayout lll = (LinearLayout) findViewById(R.id.linearLayout1); 
      RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(50, LinearLayout.LayoutParams.FILL_PARENT);    
      lll.setLayoutParams(params);    
     } 
    }); 
} 
} 
+0

मैं आपके द्वारा किए गए दृष्टिकोणों के कुछ कोड पोस्ट करूंगा, जो काम नहीं करता था। इससे आपको – hooked82

+0

के लिए एक दृष्टिकोण का सुझाव देने के लिए दूसरों को कुछ छोड़ने का मौका मिल सकता है, उम्मीद है कि मदद करता है :) – Dporem

+0

[इसे आजमाएं] (http://androidtrainningcenter.blogspot.in/2013/06/slidingpanelayout-android-making.html) – Sameer

उत्तर

1

स्लाइडिंग ड्रावर केवल दाएं या बोतल से स्लाइड कर सकता है ओम, यह ऊपर या बाएं से स्लाइड करने में असमर्थ है। आप इस प्रश्न से उत्तर का प्रयास कर सकते हैं: Android SlidingDrawer from top? या आप स्रोत कोड http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/SlidingDrawer.java को फिर से लिखने का प्रयास कर सकते हैं।

हालांकि, एक SlidingDrawer अभ्यस्त

सफेद पैनल सभी सामग्री दिखाने के लिए और नहीं पैनलों

में से किसी के अधीन हो के रूप में यह सफेद पैनल से अधिक स्लाइड हो जाएगा अनुमति देते हैं

एकमात्र समाधान जो मैं सोच सकता हूं वह स्केल/अनुवाद की एक श्रृंखला का उपयोग करना है, बाएं या दाएं पैनल ऑफ-स्क्रीन का अनुवाद करना और दृश्यता सेट करना है, जबकि साथ ही केंद्र पैनल को जो भी लाल पैनल की दिशा में बाहर किया जा रहा है remov ईडी।

मैंने कुछ समय पहले एक समान प्रोटोटाइप बनाने की कोशिश की और इस विधि का उपयोग किया लेकिन स्केल एनिमेशन बहुत भयानक लग रहा था, न कि एनीमेशन एंड श्रोता काम नहीं करता है, आपको एक रैखिक लयआउट का विस्तार करना होगा और इसके लिए एनीमेशन पर ओवरराइड करना होगा काम करने के लिए।

+0

पहली वाक्य की जांच करें, बाईं ओर दो बार उल्लेख किया गया है। आप शायद एक बिंदु पर सही मतलब है। –

+0

आह ओह, तय – triggs

+0

"एकमात्र समाधान मैं के बारे में सोच सकते हैं पैमाने की एक श्रृंखला का उपयोग करने/अनुवाद, चला गया के लिए रवाना स्क्रीन बाएं या दाएं पैनल और दृश्यता सेट का अनुवाद है, जबकि एक ही समय बड़े पैमाने पर केंद्र पैनल में इनमें से जो भी लाल पैनल की दिशा हटाया जा रहा है। " मैं इस कोशिश की और अच्छी तरह से काम नहीं किया ... वैसे भी, मैं अपने बॉस को एक अलग दृष्टिकोण का प्रस्ताव किया जाएगा, बस आशा है कि वह इसे या im दर्द का एक दुनिया में पसंद करती है lol। वैसे भी, आपकी मदद के लिए धन्यवाद, यह एक कठिन विषय का जवाब देने में लग रहा है :) – Dporem

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