SlidingDrawer是一个滑动式抽屉,通过点击或拖拽手柄(handle)来显示或隐藏内容(content)。
看了很多关于SlidingDrawer的例子,但基本都是全屏显示,并且手柄居中的。我们下面就来看一下不全屏显示、手柄不居中的SlidingDrawer的例子,其实,实现起来非常简单。
先来看图:
xml-- activity_main 代码:
[html] view plaincopy
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_weight="1" >
- </LinearLayout>
- <SlidingDrawer
- android:id="@+id/slidingdrawer"
- android:layout_width="fill_parent"
- android:layout_height="100dip"
- android:content="@+id/content"
- android:handle="@+id/handle"
- android:orientation="vertical"
- >
- <Button
- android:id="@+id/handle"
- android:layout_width="88dip"
- android:layout_height="44dip"
- android:background="@drawable/handle"
- android:translationX="100dip "/> <span style="color:rgb(0,102,0)"> </span><span style="color:#990000">//如果想要手柄不居中显示,可以添加 android:translationX 这个属性,就可使手柄在X轴上进行偏移。</span>
- <LinearLayout
- android:id="@+id/content"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="#00ff00" >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Hello" />
- </LinearLayout>
- </SlidingDrawer>
- </LinearLayout>
我们再看一下Activity的代码:
[java] view plaincopy
- public class MainActivity extends Activity {
- private Button mHandle;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- setupViews();
- }
- public void setupViews() {
- mHandle = (Button) findViewById(R.id.handle);
- mHandle.setTranslationX(100); //这里主要说一下,android:translationX 这个属性,在Activity中也可设置。
- }