2012-02-11 3 views
1

Я хочу, чтобы слайдер был открыт, когда приложение запускается. Он будет открыт с кнопками и т. Д., И когда пользователь закроет его, появится больше кнопок для доступа. Возможно ли это с помощью выдвижного ящика? Что бы я добавил к методу onCreate()?Android Sliding Drawer Open On Create

Благодаря

ответ

4

XML Layout - В базовой LinearLayout:

<SlidingDrawer 
    android:id="@+id/slide" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:content="@+id/content" 
    android:handle="@+id/handle" 
    android:orientation="vertical" 
    android:scrollbars="vertical" > 

    <LinearLayout 
     android:id="@id/handle" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/btn" 
     android:gravity="center" 
     android:orientation="horizontal" > 

     <ImageView 
      android:id="@+id/handleImage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_tray_expand" /> 

     <Button 
      android:id="@+id/handleButton" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:background="@drawable/btn" 
      android:text="Up me" /> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/content" 
     android:paddingTop="2dp" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#013E53" 
     android:gravity="center" 
     android:orientation="vertical" > 
     <TextView 
      android:id="@+id/tv_commentDisplay" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="left" 
      android:paddingLeft="10dp" 
      android:textSize="20dp" /> 
    </LinearLayout> 
</SlidingDrawer> 

И ваша активность будет выглядеть следующим образом:

public class Home extends Activity implements OnDrawerScrollListener 
{ 

private ImageView    handleImage; 
private Button     handleButton; 
private SlidingDrawer   slide; 
    private TextView    tv_commentDisplay; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.main); 

      tv_commentDisplay = (TextView)this.findViewById(R.id.tv_commentDisplay); 
    handleImage = (ImageView)this.findViewById(R.id.handleImage); 
    handleButton = (Button)this.findViewById(R.id.handleButton); 
    slide = (SlidingDrawer)this.findViewById(R.id.slide); 

    slide.open(); // not sure 
    slide.setOnDrawerScrollListener(this); 

    handleButton = ((Button)this.findViewById(R.id.handleButton)); 

    tv_commentDisplay.setText("Hello World"); 
} 

@Override 
public void onScrollEnded() { 
} 

@Override 
public void onScrollStarted() { 
    if (slide.isOpened()) 
     handleImage.setImageResource(R.drawable.ic_tray_collapse); 
    else { 
     handleImage.setImageResource(R.drawable.ic_tray_expand); 
    } 
} 
1

Использование open() в вашем onCreate(), это откроет ящик немедленно.

Вы можете посмотреть на полный API here

+0

Спасибо, также animateOpen() для открытия с анимацией. – fullMoon