Android Sliding Drawer Open On Create

时间:2012-02-11 21:54:33

标签: java android oncreate

我希望在应用启动时打开一个滑块。它将打开按钮等,当用户关闭它时,将有更多按钮可供访问。滑动抽屉可以实现吗?我将在onCreate()方法中添加什么内容?

由于

2 个答案:

答案 0 :(得分:4)

XML布局 - 在基本的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 :(得分:1)

open()中使用onCreate(),它会立即打开抽屉。

您可以查看完整的API here