2011-11-15 15 views
5

Bir uygulamayı başlatmaya çalışıyorum ve istediğimi nasıl yapacağım konusunda kaygılıyım. Android sürgülü paneller

Bu

O panelini kaplayan, ikisi de kırmızı paneller yanlara kaymasını mümkün olmalıdır ve bunlardan (veya her ikisi) bunlardan biri çökmüş ise beyaz bir genişletmesi gerektiğini

left and right red sliders ; main white content

istediğim şey alanı. Ekranda kırmızı paneller olduğunda, beyaz panel tüm içeriği gösterir ve panellerin hiçbirinin altında olmamalıdır.

Şimdiye kadar neler denedim: İki SlidingDrawer s ile denemeye başladım, ancak beyaz panel kırmızı olanların arkasına geçti, bu yüzden şans yok. Bundan sonra 2 LinearLayouts (kırmızı paneller) ve RelativeLayout (beyaz panel) ile denedim ve düğmelerin genişliğini (görüntü üstte olduğu gibi) düğmeleriyle değiştirmeye çalıştım. Bu her zaman, nasıl çözeceğimi bilmediğim sorunlara neden oldu.

Öneriler?

Düzenleme: SlidingDrawer örnek 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> 

Ve LinearLayout örnek 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> 

android kodu (yorumladı bölüm 1 örnek kodudur) :

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

Çektiğiniz yaklaşımların bazı kodlarını gönderdim, çalışmadı. Bu sizin için – hooked82

+0

Bitti bir yaklaşım önererek kapalı bir şeyler verebilir, bu yardımcı olur umarım :) – Dporem

+0

[Bunu deneyin] (http://androidtrainningcenter.blogspot.in/2013/06/slidingpanelayout-android-making.html) – Sameer

cevap

1

SlidingDrawer yalnızca sağdan veya bottan kaydırabilir om, yukarıdan veya soldan kaydılamaz. Bu sorudan cevabı deneyebilirsiniz: Android SlidingDrawer from top? veya kaynak kodunu tekrar yazmayı deneyebilirsiniz http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/SlidingDrawer.java.

Ancak, SlidingDrawer alışkanlık

beyaz panelle beyaz panel üzerinde kayacaktır olarak panel

herhangi biri uyarınca tüm içeriği gösterir olup olmak izin

Düşünebildiğim tek çözüm, bir dizi ölçek/çeviri kullanmak, sol veya sağ paneli ekran dışına çevirmek ve görünürlüğü ayarlamaktır, aynı zamanda merkez panelini hangisi kırmızı panelin yönünde olacak şekilde ölçeklendirmektir. remov ed.

Benzer bir prototipi bir süre önce denedim ve bu yöntemi kullandım ama ölçek animasyonları korkunç görünüyordu, onAnimationEnd dinleyicisi çalışmadığından bahsetmiyor, bir LinearLayout'u genişletmek ve bunun içinAnimationEnd'i geçersiz kılmak zorunda kalacaksınız. çalışmak.

+0

İlk cümleyi kontrol edin, soldan iki kere söz edilir. Muhtemelen bir noktada haklısınız demektir. –

+0

ah ooops, sabit – triggs

+0

"Düşünebildiğim tek çözüm, bir dizi ölçek/çeviri kullanmak, sol veya sağ paneli ekran dışına çevirmek ve görünürlüğü görünür kılmak, aynı zamanda orta paneli hangisi kırmızı panelin kaldırılacağını belirtir. Bunu denedim ve işe yaramadı ... Her neyse, patronuma farklı bir yaklaşım önereceğim, umarız sevinir ya da bir acı lol dünyasındayım. Neyse, yardımlarınız için teşekkürler, bu cevap vermek zor bir konuya benziyor :) – Dporem