Android41_SlidingMenu及DrawerLayout
来源:互联网 发布:sql left join on 编辑:程序博客网 时间:2024/06/15 13:42
SlidingMenu滑动菜单及DrawerLayout
publicclass MainActivity extends Activity {
private SlidingMenu slidingMenu;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
slidingMenu = new SlidingMenu(this);
slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
slidingMenu.setMenu(R.layout.sm_left);
slidingMenu.setSecondaryMenu(R.layout.sm_right);
slidingMenu.setBehindWidth(200);
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
}
}
一、MainActivity代码:
publicclass MainActivity extends FragmentActivity {
private SlidingMenu slidingMenu;
private ListView listView_menu_titlelist;
private MySQLiteDatabaseHelper dbHelper;
private List<Map<String, Object>> totalList = null;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new MySQLiteDatabaseHelper();
totalList = dbHelper.selectData(
"select id ,title ,content from android_basic", null);
List<String> titleList = new ArrayList<String>();
for (int i = 0; i < totalList.size(); i++) {
titleList.add(totalList.get(i).get("title").toString());
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, titleList);
getSlidingMenu(adapter);
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setHomeButtonEnabled(true);
// actionBar.setHomeAsUpIndicator(getResources().getDrawable(
// R.drawable.indicator));
}
privatevoid getSlidingMenu(ArrayAdapter adapter) {
slidingMenu = new SlidingMenu(this);
slidingMenu.setMode(SlidingMenu.LEFT);
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
// slidingMenu.setTouchModeBehind(SlidingMenu.TOUCHMODE_FULLSCREEN);
slidingMenu.setMenu(R.layout.slidingmenu_left);
slidingMenu
.setBehindWidth(getResources().getDisplayMetrics().widthPixels / 2);
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
listView_menu_titlelist = (ListView) slidingMenu.getMenu()
.findViewById(R.id.listView_menu_titlelist);
listView_menu_titlelist.setAdapter(adapter);
listView_menu_titlelist
.setOnItemClickListener(new OnItemClickListener() {
@Override
publicvoid onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Map<String, Object> map = totalList.get(position);
String data = map.get("content").toString();
ContentFragment fragment = new ContentFragment();
Bundle bundle = new Bundle();
bundle.putString("content", data);
fragment.setArguments(bundle);
FragmentTransaction transaction = MainActivity.this
.getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.layout_container, fragment);
transaction.addToBackStack("androidManual");
transaction.commit();
}
});
}
@Override
publicboolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
returntrue;
}
@Override
publicboolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_showmenu:
slidingMenu.toggle();
break;
case android.R.id.home:
slidingMenu.toggle();
break;
default:
break;
}
returnsuper.onOptionsItemSelected(item);
}
}
二、ContentFragment代码:
publicclass ContentFragment extends Fragment {
private TextView textView_fragment_content;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_content, null);
textView_fragment_content = (TextView) view
.findViewById(R.id.text_fragment_content);
Bundle bundle = getArguments();
String data = bundle.getString("content");
textView_fragment_content.setText(data);
return view;
}
}
- 第一个子元素是抽屉没有打开时显示的布局,即主界面布局;
- 第二个子元素是抽屉中的内容,即抽屉布局。
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--第一个子元素是抽屉没有打开时显示的布局-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/layout_main_tabtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<TextView
android:id="@+id/textView1"
style="@style/mystyle1"
android:text="头条"/>
<TextView
android:id="@+id/textView2"
style="@style/mystyle1"
android:text="百科"/>
<TextView
android:id="@+id/textView3"
style="@style/mystyle1"
android:text="咨询"/>
<ImageView
android:id="@+id/imageView_main_more"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:onClick="clickButton"
android:src="@drawable/more"/>
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="#00CD00"/>
<android.support.v4.view.ViewPager>
</android.support.v4.view.ViewPager>
</LinearLayout>
<!--第二个子元素是抽屉中的内容,即抽屉布局 -->
<LinearLayout
android:id="@+id/layout_main_rightdrawer"
android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_gravity="right"
android:background="#fff"
android:orientation="vertical">
<LinearLayout
android:id="@+id/layout_drawer_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<ImageView
android:id="@+id/imageView_drawer_back"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:onClick="clickButton"
android:src="@drawable/more"/>
<TextView
android:id="@+id/text_drawer_title"
style="@style/mystyle1"
android:textSize="20sp"
android:text="@string/title_right_drawer"/>
<ImageView
android:id="@+id/imageView_drawer_home"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:onClick="clickButton"
android:src="@drawable/righttopbutton"/>
</LinearLayout>
<TextView
android:id="@+id/text_line"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="#00CD00"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
publicclass MainActivity extends FragmentActivity {
private DrawerLayout layout_drawer;
private LinearLayout layout_main_rightdrawer;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout_drawer = (DrawerLayout) findViewById(R.id.layout_drawer);
layout_main_rightdrawer = (LinearLayout) findViewById(R.id.layout_main_rightdrawer);
LayoutParams layoutParams = layout_main_rightdrawer.getLayoutParams();
layoutParams.width = getResources().getDisplayMetrics().widthPixels * 4 / 5;// 设置抽屉出现时的宽度
layout_main_rightdrawer.setLayoutParams(layoutParams);
}
publicvoid clickButton(View view) {
switch (view.getId()) {
case R.id.imageView_main_more:
layout_drawer.openDrawer(layout_main_rightdrawer);
break;
case R.id.imageView_drawer_back:
layout_drawer.closeDrawer(layout_main_rightdrawer);
break;
}
}
}
- Android41_SlidingMenu及DrawerLayout
- SlidingMenu滑动菜单及DrawerLayout
- DrawerLayout及自定义的实现
- DrawerLayout的布局及实现
- DrawerLayout
- DrawerLayout
- DrawerLayout
- DrawerLayout
- DrawerLayout
- DrawerLayout
- DrawerLayout
- drawerLayout
- DrawerLayout
- DrawerLayout
- DrawerLayout
- DrawerLayout
- DrawerLayout
- DrawerLayout
- SpringMVC中使用Interceptor拦截器
- 安卓工具大集合,KeyBoardUtils
- 关于eclipse中工程project的实质区别研究与猜测
- 自己的第一篇博客
- 比特币github地址
- Android41_SlidingMenu及DrawerLayout
- 比特币github地址
- 3997: [TJOI2015]组合数学 DP Dilworth定理
- 利用PHPWord生成文档的应用例子
- Oracle用户被锁定解决方法
- 为文字添加下划线和中划线
- js类和对象
- 【Android开发经验】APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了
- css3动画简介以及动画库animate.css的使用