DrawerLayout和actionBar实现网易新闻标题,包含点击图标登录qq
2017-08-11 21:48
204 查看
DrawerLayout和antionBar实现网易新闻标题,包含点击图标登录qq
1.首先在res下建一个文件夹menu,写一个xml 这里就叫actionbar<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto "> <item android:id="@+id/image_actionbar" android:icon="@drawable/qqhuise" android:title="发布" app:showAsAction="always" /> <item android:id="@+id/action_tianqi" android:orderInCategory="100" android:showAsAction="never" android:title="天气" /> <item android:id="@+id/action_lixian" android:orderInCategory="100" android:showAsAction="never" android:title="离线" /> <item android:id="@+id/action_yejian" android:orderInCategory="100" android:showAsAction="never" android:title="日夜间" /> <item android:id="@+id/action_sousuo" android:orderInCategory="100" android:showAsAction="never" android:title="搜索" /> <item android:id="@+id/action_saoyisao" android:orderInCategory="100" android:showAsAction="never" android:title="扫一扫" /> <item android:id="@+id/action_shezhi" android:orderInCategory="100" android:showAsAction="never" android:title="设置" /> </menu>
注意id
2.在你的MainActivity里
这个方法是关于左拉又拉菜单相关设置
@Override public boolean onOptionsItemSelected(MenuItem item) { if (toggle.onOptionsItemSelected(item)) { return true; } switch(item.getItemId()){ case R.id.image_actionbar: if (mActivityMain.isDrawerOpen(GravityCompat.START)) { mActivityMain.closeDrawer(GravityCompat.START);//关闭抽屉 } else { mActivityMain.openDrawer(GravityCompat.END); } break; default: break; } if (mActivityMain.isDrawerOpen(GravityCompat.END)) { mActivityMain.closeDrawer(GravityCompat.END);//关闭抽屉 return super.onOptionsItemSelected(item); } return toggle.onOptionsItemSelected(item) | super.onOptionsItemSelected(item); }
//这个方法是调用你的menu
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.actionbar, menu);//这里是调用menu文件夹中的main.xml,在登陆界面label右上角的三角里显示其他功能 return super.onCreateOptionsMenu(menu); }
//以上基本知识点就完了 如果要实现一个简单的结果 可以粘我的 还有ActionBar的联动
private void initActionBar() { ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); toggle = new ActionBarDrawerToggle(this, mActivityMain, R.string.open, R.string.close); toggle.syncState(); mActivityMain.addDrawerListener(toggle); }
//全代码和Xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.administrator.drawerlayoutactiobar.MainActivity"> <fragment class="com.example.administrator.drawerlayoutactiobar.leftFragment" android:layout_gravity="start" android:layout_width="match_parent" android:layout_height="match_parent"/> <fragment class="com.example.administrator.drawerlayoutactiobar.rightFragment" android:layout_gravity="end" android:layout_width="match_parent" android:layout_height="match_parent"/> </android.support.v4.widget.DrawerLayout>
/**********/ 自己建俩个fragment就可以了
public class MainActivity extends AppCompatActivity {
private DrawerLayout mActivityMain;
private ActionBarDrawerToggle toggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initActionBar();
}
private void initActionBar() { ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); toggle = new ActionBarDrawerToggle(this, mActivityMain, R.string.open, R.string.close); toggle.syncState(); mActivityMain.addDrawerListener(toggle); }
private void initView() {
mActivityMain = (DrawerLayout) findViewById(R.id.activity_main);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (toggle.onOptionsItemSelected(item)) {
return true;
}
switch (item.getItemId()) {
case R.id.image_actionbar:
if (mActivityMain.isDrawerOpen(GravityCompat.START)) {
mActivityMain.closeDrawer(GravityCompat.START);//关闭抽屉
} else {
mActivityMain.openDrawer(GravityCompat.END);
}
break;
default:
break;
}
if (mActivityMain.isDrawerOpen(GravityCompat.END)) {
mActivityMain.closeDrawer(GravityCompat.END);//关闭抽屉
return super.onOptionsItemSelected(item);
}
return toggle.onOptionsItemSelected(item) | super.onOptionsItemSelected(item);
}
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.actionbar, menu);//这里是调用menu文件夹中的main.xml,在登陆界面label右上角的三角里显示其他功能 return super.onCreateOptionsMenu(menu); }
}
相关文章推荐
- Android 高仿QQ5.2双向側滑菜单DrawerLayout实现源代码
- 基于谷歌官方DrawerLayout实现QQ样式边侧滑抽屉缩进缩出技术
- 使用DrawerLayout和Toolbar实现的侧滑菜单修改默认图标
- android DrawerLayout实现仿QQ侧滑菜单
- Android--NavigationView+DrawerLayout实现侧滑(仿QQ)
- 基于谷歌官方DrawerLayout实现QQ样式边侧滑抽屉缩进缩出技术
- 安卓实现电脑端的QQ登录界面 自动提示+点击按钮提示输入记录
- 点击actionbar左侧图标,实现返回效果
- ActionBar和DrawerLayout纯原生控件,实现侧滑栏和滑动Tab界面
- Android 高仿QQ5.2双向侧滑菜单DrawerLayout实现源码
- flash实现点击QQ图标显示QQ对话框
- DrawableLayout实现仿QQ侧滑菜单+HttURLConnection_XListView_DrawerLayout_ImageLoader
- C#实现无标题栏窗体点击任务栏图标正常最小化或还原的解决方法
- 使用ActionBar和DrawerLayout纯原生控件,实现侧滑栏和滑动Tab界面
- C#实现无标题栏窗体点击任务栏图标正常最小化或还原的解决方法
- ActionBar+DrawerLayout实现网易新闻客户端首页
- ActionBar+DrawerLayout实现网易新闻客户端首页
- Materail Design 入门(五)—— 使用DrawerLayout实现仿qq6.0的侧滑菜单功能
- 超简单的使用drawerlayout实现QQ的侧拉面板效果
- ActionBar、Drawerlayout、ActionBarDrawerToggle实现抽屉效果