android 官方侧边栏布局
来源:互联网 发布:debian软件安装位置 编辑:程序博客网 时间:2024/06/05 20:44
说到侧边栏,相信大家一定听过或者用过 slidingmenu ,这是目前很流行的一个开源控件。但 google 也发布了一个侧边栏的控件,而且使用起来简单方便。
下面以一个官方简单的例子说明:
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends FragmentActivity {
public DrawerLayout drawerLayout;// 侧边栏布局
public ListView leftList;// 侧边栏内的选项
public ArrayAdapter<String> arrayAdapter;
private String[] items;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
// 初始化控件
private void initViews() {
drawerLayout = (DrawerLayout) findViewById(R.id.main_layout);
items = getResources().getStringArray(R.array.left_array);
leftList = (ListView) findViewById(R.id.left_drawer);
arrayAdapter = new ArrayAdapter<String>(this, R.layout.list_item, items);
leftList.setAdapter(arrayAdapter);
leftList.setOnItemClickListener(itemListener);
initFragments();
}
// 添加碎片
private void initFragments() {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
DrawerFragment fragment = new DrawerFragment();
// 设置在fragment中按钮来控制侧边栏的打开
fragment.setDrawerLayout(drawerLayout, leftList);
transaction.add(R.id.main_content, fragment);
transaction.commit();
}
// 选项点击事件
OnItemClickListener itemListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long arg3) {
// TODO Auto-generated method stub
// 设置Activity的标题,这里只是用来做一个测试,你可以在这里用来处理单击侧边栏的选项事件
setTitle(items[position]);
// 关闭侧边栏
drawerLayout.closeDrawer(leftList);
}
};
/*
* (non-Javadoc)
*
* @see android.support.v4.app.FragmentActivity#onKeyDown(int,
* android.view.KeyEvent)
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
// 使用menu键打开或关闭侧边栏
if (keyCode == KeyEvent.KEYCODE_MENU) {
if (drawerLayout.isDrawerOpen(leftList)) {
drawerLayout.closeDrawer(leftList);
} else {
drawerLayout.openDrawer(leftList);
}
}
return super.onKeyDown(keyCode, event);
}
}
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
public class DrawerFragment extends Fragment implements OnClickListener {
public DrawerLayout layout;
public View view;
public DrawerFragment() {
super();
// TODO Auto-generated constructor stub
}
public void setDrawerLayout(DrawerLayout layout, View view) {
this.layout = layout;
this.view = view;
}
/*
* (non-Javadoc)
*
* @see
* android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater
* , android.view.ViewGroup, android.os.Bundle)
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View rootView = inflater.inflate(R.layout.fragment_layout, container,
false);
Button openBtn = (Button) rootView.findViewById(R.id.open);
openBtn.setOnClickListener(this);
return rootView;
}
/*
* (non-Javadoc)
*
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v.getId() == R.id.open) {
//打开侧边栏
if (!layout.isDrawerOpen(view)) {
layout.openDrawer(view);
}
}
}
}
- android 官方侧边栏布局
- 布局侧边栏
- Android侧边栏
- android侧边栏
- android:滑动侧边栏
- Android滑动侧边栏
- Android 侧边栏
- HTML——左侧边栏布局
- HTML——左右侧边栏布局
- 侧边栏导航布局的实现
- android布局篇:Fragment,带侧边栏的activity以及table activity
- android 滑动侧边栏 SlideMenu
- android实现侧边导航栏
- android DrawerLayout 侧边栏实现
- Android控件--侧边栏SideBar
- android DrawerLayout侧边栏实现
- Android 侧边触摸式导航栏
- Widget logic插件实现wordpress侧边栏布局
- Android常用的工具类(转)
- IE安装siverlight插件后仍提示请下载插件
- 软件测试的分类
- Windows7 install ubuntu14.04
- android之如何使用eclipse选择activity的theme
- android 官方侧边栏布局
- contentprovider笔记
- mvc与三层结构区别
- Android Studio 集成SVN 整理
- java finalize()方法
- Intersection of Two Linked Lists
- Android得到Layout里的布局文件里的自定义组件
- python装饰器计算函数运行时间
- 在res/values下创建attrs.xml