Android 从小白到大拿之路——DrawerLayout抽屉的使用 (更新中)

来源:互联网 发布:室内地图最短路径算法 编辑:程序博客网 时间:2024/04/27 14:26

安卓官方文档:  http://www.androidcommunitydocs.com/training/implementing-navigation/nav-drawer.html#Init

1、创建一个DrawerLayout 抽屉

在主布局中,使用 <android.support.v4.widget.DrawerLayout > </android.support.v4.widget.DrawerLayout > 包裹整个布局

主内容的布局:一般使用frameLayout作为主内容的布局(也可用其他的,不过一般使用这家伙)

左边侧滑布局:一般使用ListView 作为填充(也可用其他的,不过一般使用这家伙)

【注意】官方文档中提到:

1)在DrawerLayuot中的主布局的第一个填充内容必须是main content view ,即主内容视图,因为xml 顺序是以z轴顺序的,并且drawer必须在内容的顶端。

2)主内容视图设置成match parent 的width 和heigt , 因为这代表完整的UI当抽屉隐藏的时候。

3)抽屉视图(如:ListView)必须设置他的水平重心 android:layout_gravity 属性 

start 代表从左往右滑,或者用left ,但是不推荐

end代表从左往右滑,或者用right ,但是不推荐

4)抽屉视图的高度设置为match parent , 宽度设置在 240dp 到 320dp之间,推荐用240dp和320dp


【双抽屉】如果想要创建左边一个抽屉,右边一个抽屉,只要在frameLayout后面加 两个ListView就OK了


2、初始化抽屉列表

在activity中初始化你的抽屉列表项目,可以的工具取决你的应用,比如:ArrayAdaper or SimpleCursorAdapter ,此处使用的是ListView作为例子。

public class MainActivity extends Activity {    private String[] mPlanetTitles;    private ListView mDrawerList;    ...    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mPlanetTitles = getResources().getStringArray(R.array.planets_array);        mDrawerList = (ListView) findViewById(R.id.left_drawer);        // Set the adapter for the list view        mDrawerList.setAdapter(new ArrayAdapter<String>(this,                R.layout.drawer_list_item, mPlanetTitles));        // Set the list's click listener        mDrawerList.setOnItemClickListener(new DrawerItemClickListener());        ...    }}

这里需要在values 中定义要显示的planets_array




0 0