Estoy tratando de iniciar una aplicación y estoy perdido en cómo hacer lo que quiero.Android paneles deslizantes
Esto es lo que quiero
Ambos paneles rojos deben ser capaces de deslizarse hacia los lados y el blanco deben ampliar si uno de ellos (o ambos) que se colapsa, ocupando ese panel espacio. Cuando tengo los paneles rojos en la pantalla, el panel blanco muestra todo el contenido y no se encuentra debajo de ninguno de los paneles.
Lo he intentado hasta ahora: Empecé probando con dos SlidingDrawer
s, pero el panel blanco quedó detrás de los rojos, por lo tanto, no tuve suerte. Después de eso probé con 2 LinearLayouts
(paneles rojos) y un RelativeLayout
(panel blanco), y traté de cambiar el ancho de los diseños con botones (como en la imagen de la parte superior). Esto causaba siempre problemas que no sabía cómo resolver.
Sugerencias?
Editar: XML del ejemplo SlidingDrawer:
<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>
Y el xml del ejemplo LinearLayout:
<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>
El código de Android (la parte comentado es el código de la primera ejemplo) :
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);
}
});
}
}
Publicaba un código de lo que se aproxima, eso no funcionó. Eso podría darles algo a los demás cuando sugiera un enfoque para usted – hooked82
Hecho, espero que ayude :) – Dporem
[Pruebe esto] (http://androidtrainningcenter.blogspot.in/2013/06/slidingpanelayout-android-making.html) – Sameer