DrawerLayout和actionBar实现网易新闻标题,包含点击图标登录qq

来源:互联网 发布:淘宝达人开通 编辑:程序博客网 时间:2024/06/06 18:00

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里

这个方法是关于左拉又拉菜单相关设置

@Overridepublic 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

@Overridepublic 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);    }}

















阅读全文
0 0
原创粉丝点击