2015-03-02 2 views
0

Я хочу создать скользящий ящик в андроиде, который должен быть размещен поверх активности и должен быть открыт сверху донизу, как панель уведомлений по android. Как достичь этого?Скользящий выдвижной ящик Android сверху вниз

+1

Возможный дубликат: http://stackoverflow.com/questions/3695856/android-slidingdrawer- from-top – jonDoe

+0

Проверьте это http://stackoverflow.com/a/11227689/1641556 – Elshan

ответ

1

По умолчанию SlidingDrawer класс не допускает этого. Вы можете использовать класс Panel отсюда, чтобы получить что-то очень похожее, хотя ИЛИ установить поворот на 180º для SlidingDrawer, содержимого и дескриптора. Примечание: андроид: вращение поддержка по API> Level 11

http://www.ohloh.net/p/android-misc-widgets
https://github.com/IanDarwin/Android-Cookbook-Examples/tree/master/SlidingDrawer-Topdown

Reference

+0

Я не могу запустить пример поваренной книги, давая мне ошибку как 03-02 16: 44: 06.023: E/AndroidRuntime (21584): java.lang.RuntimeException: Не удалось запустить Activity ComponentInfo {com.example.slidingdrawer/com. example.slidingdrawer.MainActivity}: java.lang.RuntimeException: у вашей панели должен быть вид, чей идентификационный атрибут равен "R.id.panelHandle" – user3391170

0

Если вы хотите иметь выдвижной ящик сверху вниз, то просто скопируйте PASE этого кода в проект, это 100% рабочий код.

main.xml

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#d3d3d3" 
    > 
    <SlidingDrawer 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/slidingDrawer" 
    android:layout_width="wrap_content" 
    android:layout_height="300dp" 
    android:content="@+id/content" 
    android:gravity="center_horizontal" 
    android:handle="@+id/handle" 
    android:orientation="vertical" 
    android:rotation="180" > 

    <LinearLayout 
     android:id="@+id/handle" 
     android:layout_width="fill_parent" 
     android:layout_height="40dp" 
     android:gravity="right" 
     android:background="@+drawable/drawer_bk" 
      > 

     <ImageView 
      android:id="@+id/imageView" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:background="@+drawable/drawer1" /> 



    </LinearLayout> 

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="45dp" > 

    <RelativeLayout 
     android:id="@+id/rel1" 
     android:layout_width="match_parent" 
     android:layout_height="70dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="10dp" 
     android:rotation="180" > 

     <ImageView 
      android:id="@+id/ImageView04" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:onClick="visit" 
      android:src="@drawable/visit_icon" /> 

     <ImageView 
      android:id="@+id/ImageView03" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_alignParentTop="true" 
      android:layout_marginRight="35dp" 
      android:layout_toLeftOf="@+id/ImageView04" 
      android:onClick="contact_us" 
      android:src="@drawable/contact_icon" /> 

     <ImageView 
      android:id="@+id/ImageView02" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="35dp" 
      android:layout_toRightOf="@+id/ImageView04" 
      android:onClick="logout" 
      android:src="@drawable/singout_icon" /> 
    </RelativeLayout> 


</RelativeLayout> 

    </SlidingDrawer> 

MainActivity.java

public class MainActivity extends Activity 
{ 

/** Duration of wait **/ 
private final int SPLASH_DISPLAY_LENGTH = 4000; 
Button slideButton,b1, b2,b3,b4; 
SlidingDrawer slidingDrawer; 

@SuppressWarnings("deprecation") 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    //slideButton = (Button) findViewById(R.id.slideButton); 
    slidingDrawer = (SlidingDrawer) findViewById(R.id.slidingDrawer); 
    slidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() { 
     @Override 
     public void onDrawerOpened() 
     { 
      // slideButton.setBackgroundResource(R.drawable.down_arrow_icon); 
      slidingDrawer.setBackgroundResource(R.drawable.hd_img_1); 
     } 
    }); 

    slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() 
    { 
     @Override 
     public void onDrawerClosed() 
     { 

      // slideButton.setBackgroundResource(R.drawable.upwar_arrow_icon); 
      slidingDrawer.setBackgroundColor(Color.TRANSPARENT); 
     } 
    }); 

    } 
}