Android Sliding Drawer Open On Create

僤鯓⒐⒋嵵緔 提交于 2019-12-20 04:34:09

问题


I want to have a slider that is open when the app starts. It will be open with buttons and such and when the user closes it, there will be more buttons to access. Is this possible with a sliding drawer? What would I add to the onCreate() method?

Thanks


回答1:


XML Layout - In a basic 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>

And your Activity will looks like this:

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);
    }
}



回答2:


Use open() in your onCreate(), it will open the drawer immediately.

You can take a look at the full API here



来源:https://stackoverflow.com/questions/9244387/android-sliding-drawer-open-on-create

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!