抽屉组件SlidingDrawer的使用-抽屉控件,抽屉组件
抽屉组件
SlidingDrawer
使用
1、需要下面两个必须属性
android:content = "@+id/sd_content" 内容
android:handle
=
"@+id/sd_handler"
把手
2、
SlidingDrawer默认是从下到上显示
使用android:orientation="horizontal"属性可以从右到左显示 3、如果需要从上到下,获取从到左显示,重写 SlidingDrawer 4、对于设置多的内容,可以用 SlidingDrawer |
1、问题1 <SlidingDrawer android:layout_width="wrap_content" android:layout_height="match_parent" > </SlidingDrawer> 解决:增加必要属性, android:content(内容显示),android:handle(把手) <SlidingDrawer
android:id="@+id/sd_traffic_activity"
android:content="@+id/sd_content"
android:handle="@+id/sd_handler"
android:layout_width="wrap_content"
android:layout_height="match_parent" >
</SlidingDrawer>
2、问题2,新的问题 解决:增加孩子 <!-- 1、抽屉 -->
<SlidingDrawer
android:id="@+id/sd_traffic_activity"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:content="@+id/sd_content"
android:handle="@+id/sd_handle" > <!-- 1-1、handle:把手:这里不能用+id,而是使用id -->
<ImageView
android:id="@id/sd_handle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" /> <!-- 1-2、content:内容:这里不能用+id,而是使用id -->
<LinearLayout
android:id="@id/sd_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#99000000"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:background="#99ff0000"
android:text="我是内容1" >
</TextView>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:background="#990000ff"
android:text="我是内容2" >
</TextView>
</LinearLayout>
</SlidingDrawer>
结果: 点击一个图标展开,再点击一个缩回。获取触摸拉伸
android:orientation="horizontal"
|
问题:
SlidingDrawer占用的空间 |
如何在SlidingDrawer闭合时也展示内容,两种做法? 首先采用Fragment布局,定义要显示的内容和SlidingDrawer 1、给sd_content,显示的内容弄一个有背景的View,在打开时,就会给覆盖之前显示的内容 2、设置SlidingDrawer的监听事件, 在setOnDrawerOpenListener打开,将其 ll_traffic_all_info.setVisibility(View.INVISIBLE); setOnDrawerCloseListener关闭时, ll_traffic_all_info.setVisibility(View.VISIBLE); 1、布局 activity_traffic_manage.xml <?xml version="1.0" encoding="utf-8"?>
<!-- 36、流量统计管理TrafficManageActivity对应的布局文件 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
style="@style/wizard_textview_title"
android:gravity="center"
android:text="流量统计管理" >
</TextView>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- 2、所有流量统计信息 -->
<LinearLayout
android:id="@+id/ll_traffic_all_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="15dip"
android:text="上传流量"
android:textSize="22sp" >
</TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下载流量"
android:textSize="22sp" >
</TextView>
</LinearLayout>
<!-- 1、抽屉 -->
<SlidingDrawer
android:id="@+id/sd_traffic_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:content="@+id/sd_content"
android:handle="@+id/sd_handle"
android:orientation="horizontal" >
<!-- 1-1、handle:把手:这里不能用+id,而是使用id -->
<LinearLayout
android:id="@id/sd_handle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
</LinearLayout>
<!-- 1-2、content:内容:这里不能用+id,而是使用id -->
<LinearLayout
android:id="@id/sd_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#99000000"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#99ff0000"
android:text="我是内容1" >
</TextView>
</LinearLayout>
</SlidingDrawer>
</FrameLayout>
</LinearLayout> 2、TrafficManageActivity.java package cn.zengfansheng.mobilesafe;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.SlidingDrawer;
import android.widget.SlidingDrawer.OnDrawerCloseListener;
import android.widget.SlidingDrawer.OnDrawerOpenListener;
/**
* 22、流量统计管理Activity
* @author hacket
*/
public class TrafficManageActivity extends Activity {
private LinearLayout ll_traffic_all_info;// 显示所有流量信息
private SlidingDrawer sd_traffic_activity;// 显示详细流量信息的SlidingDrawer
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_traffic_manage);
ll_traffic_all_info = (LinearLayout) this.findViewById(R.id.ll_traffic_all_info);
sd_traffic_activity = (SlidingDrawer) this.findViewById(R.id.sd_traffic_activity);
// 1、SlidingDrawer打开
sd_traffic_activity.setOnDrawerOpenListener(new OnDrawerOpenListener() {
@Override
public void onDrawerOpened() {
// SlidingDrawer打开,ll_traffic_all_info显示所有流量信息不可见
ll_traffic_all_info.setVisibility(View.INVISIBLE);
}
});
// 2、SlidingDrawer闭合
sd_traffic_activity.setOnDrawerCloseListener(new OnDrawerCloseListener() {
@Override
public void onDrawerClosed() {
// SlidingDrawer闭合,ll_traffic_all_info显示所有流量信息可见
ll_traffic_all_info.setVisibility(View.VISIBLE);
}
});
}
} 3、结果:触摸或者点击 |