您的位置:首页 > 其它

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); }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息