Android 如何通过侧菜单更改主布局

Android 如何通过侧菜单更改主布局,android,android-layout,android-menu,Android,Android Layout,Android Menu,关于:我只需点击菜单 “Rate”甚至其他菜单,我想更改右箭头显示的主视图,但如何更改?这里是 您似乎有两种选择: 打算进行一项具有您所需功能的新活动 Intent rateIntent = new Intent(CurrentActivity.this, NextActivity.class)); startActivity(rateIntent); 如果使用片段,则需要替换当前片段,您可以使用FragmentManager进行此类应用程序导航 NextFragment nextFrag=

关于:我只需点击菜单

“Rate”甚至其他菜单,我想更改右箭头显示的主视图,但如何更改?这里是


您似乎有两种选择:

  • 打算进行一项具有您所需功能的新活动

    Intent rateIntent = new Intent(CurrentActivity.this, NextActivity.class));
    startActivity(rateIntent);
    
  • 如果使用片段,则需要替换当前片段,您可以使用FragmentManager进行此类应用程序导航

    NextFragment nextFrag= new NextFragment();
    this.getFragmentManager().beginTransaction()
    .replace(R.id.Layout_container, nextFrag,TAG_FRAGMENT)
    .addToBackStack(null)
    .commit();
    

  • 希望这有帮助

    您似乎有两个选择:

  • 打算进行一项具有您所需功能的新活动

    Intent rateIntent = new Intent(CurrentActivity.this, NextActivity.class));
    startActivity(rateIntent);
    
  • 如果使用片段,则需要替换当前片段,您可以使用FragmentManager进行此类应用程序导航

    NextFragment nextFrag= new NextFragment();
    this.getFragmentManager().beginTransaction()
    .replace(R.id.Layout_container, nextFrag,TAG_FRAGMENT)
    .addToBackStack(null)
    .commit();
    
  • 希望这对mainActivityXML有所帮助

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
    
        <FrameLayout
        android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="fill_parent">
    
    
        </FrameLayout>
    
        <!-- The navigation drawer -->
        <ListView
            android:id="@+id/navdrawer"
            android:layout_width="@dimen/navdrawer_width"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="@android:color/white"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:drawSelectorOnTop="false">
        </ListView>
    
    </android.support.v4.widget.DrawerLayout>
    
    
    
    单击listview项时,我们会在framelayout中添加片段。
    创建片段
    StopAnimationFragment
    StartAnimationFragment
    ChangeColorFragment
    GitHubPageFragment
    共享片段
    速率碎片
    包装com.ikimuhendis.ldrawer.sample

    import android.app.ActionBar;
    import android.app.Activity;
    import android.content.Intent;
    import android.content.res.Configuration;
    import android.net.Uri;
    import android.os.Bundle;
    import android.support.v4.widget.DrawerLayout;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    
    import com.ikimuhendis.ldrawer.ActionBarDrawerToggle;
    import com.ikimuhendis.ldrawer.DrawerArrowDrawable;
    
    
    public class SampleActivity extends Activity {
    
        private DrawerLayout mDrawerLayout;
        private ListView mDrawerList;
        private ActionBarDrawerToggle mDrawerToggle;
        private DrawerArrowDrawable drawerArrow;
        private boolean drawerArrowColor;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_sample);
            ActionBar ab = getActionBar();
            ab.setDisplayHomeAsUpEnabled(true);
            ab.setHomeButtonEnabled(true);
    
            mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
            mDrawerList = (ListView) findViewById(R.id.navdrawer);
    
    
            drawerArrow = new DrawerArrowDrawable(this) {
                @Override
                public boolean isLayoutRtl() {
                    return false;
                }
            };
            mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                drawerArrow, R.string.drawer_open,
                R.string.drawer_close) {
    
                public void onDrawerClosed(View view) {
                    super.onDrawerClosed(view);
                    invalidateOptionsMenu();
                }
    
                public void onDrawerOpened(View drawerView) {
                    super.onDrawerOpened(drawerView);
                    invalidateOptionsMenu();
                }
            };
            mDrawerLayout.setDrawerListener(mDrawerToggle);
            mDrawerToggle.syncState();
    
    
            String[] values = new String[]{
                "Stop Animation (Back icon)",
                "Stop Animation (Home icon)",
                "Start Animation",
                "Change Color",
                "GitHub Page",
                "Share",
                "Rate"
            };
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, values);
            mDrawerList.setAdapter(adapter);
            mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                    switch (position) {
                        case 0:
                            mDrawerToggle.setAnimateEnabled(false);
                            drawerArrow.setProgress(1f);
                            //create Fragment and call this method
                            setNavigationFragments(new StopAnimationFragment());
                            break;
                        case 1:
                            mDrawerToggle.setAnimateEnabled(false);
                            drawerArrow.setProgress(0f);
                            //create Fragment and call this method
                            setNavigationFragments(new StopAnimationFragment());
                            break;
                        case 2:
                            mDrawerToggle.setAnimateEnabled(true);
                            mDrawerToggle.syncState();
                            //create Fragment and call this method
                            setNavigationFragments(new StartAnimationFragment());
                            break;
                        case 3:
                            if (drawerArrowColor) {
                                drawerArrowColor = false;
                                drawerArrow.setColor(R.color.ldrawer_color);
                            } else {
                                drawerArrowColor = true;
                                drawerArrow.setColor(R.color.drawer_arrow_second_color);
                            }
                            mDrawerToggle.syncState();
                            //create Fragment and call this method
                            setNavigationFragments(new ChangeColorFragment());
                            break;
                        case 4:
    
                            //create Fragment and call this method
                            setNavigationFragments(new GitHubPageFragment());
                            break;
                        case 5:
                            //create Fragment and call this method
                            setNavigationFragments(new ShareFragment());
                            break;
                        case 6:
                            //create Fragment and call this method
                            setNavigationFragments(new RateFragment());
                            break;
                    }
    
                }
            });
        }
    private void setNavigationFragments(Fragment fragment) {
            getSupportFragmentManager().beginTransaction()
                    .replace(R.id.fragment_container,fragment).commit();
        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            if (item.getItemId() == android.R.id.home) {
                if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
                    mDrawerLayout.closeDrawer(mDrawerList);
                } else {
                    mDrawerLayout.openDrawer(mDrawerList);
                }
            }
            return super.onOptionsItemSelected(item);
        }
    
        @Override
        protected void onPostCreate(Bundle savedInstanceState) {
            super.onPostCreate(savedInstanceState);
            mDrawerToggle.syncState();
        }
    
        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            mDrawerToggle.onConfigurationChanged(newConfig);
        }
    }
    
    导入android.app.ActionBar;
    导入android.app.Activity;
    导入android.content.Intent;
    导入android.content.res.Configuration;
    导入android.net.Uri;
    导入android.os.Bundle;
    导入android.support.v4.widget.DrawerLayout;
    导入android.view.MenuItem;
    导入android.view.view;
    导入android.widget.AdapterView;
    导入android.widget.ArrayAdapter;
    导入android.widget.ListView;
    导入com.ikimuhendis.ldrawer.ActionBarDrawerToggle;
    导入com.ikimuhendis.ldrawer.drawerRowDrawable;
    公共类SampleActivity扩展了活动{
    私人抽屉布局mDrawerLayout;
    私有列表视图mDrawerList;
    私有操作bardrawertoggle mDrawerToggle;
    私人抽屉可抽出式抽屉;
    私有布尔颜色;
    @凌驾
    创建时受保护的void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_示例);
    ActionBar ab=getActionBar();
    ab.setDisplayHomeAsUpEnabled(真);
    ab.setHomeButtonEnabled(真);
    mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
    mDrawerList=(ListView)findViewById(R.id.navdrawer);
    抽屉行=新抽屉行可绘制(此){
    @凌驾
    公共布尔isLayoutRtl(){
    返回false;
    }
    };
    mDrawerToggle=新操作BarDrawerToggle(此,mDrawerLayout,
    抽屉行,右弦,抽屉打开,
    右弦抽屉(U关闭){
    公共无效onDrawerClosed(视图){
    super.onDrawerClosed(视图);
    无效操作菜单();
    }
    打开图纸上的公共空白(视图抽屉视图){
    super.onDrawerOpened(抽屉视图);
    无效操作菜单();
    }
    };
    mDrawerLayout.setDrawerListener(mDrawerToggle);
    mDrawerToggle.syncState();
    字符串[]值=新字符串[]{
    “停止动画(后退图标)”,
    “停止动画(主图标)”,
    “启动动画”,
    “换颜色”,
    “GitHub页面”,
    “分享”,
    “利率”
    };
    ArrayAdapter=新的ArrayAdapter(此,
    android.R.layout.simple_list_item_1,android.R.id.text1,值);
    mDrawerList.setAdapter(适配器);
    mDrawerList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
    @凌驾
    public void onItemClick(AdapterView父级、视图、,
    内部位置,长id){
    开关(位置){
    案例0:
    mDrawerToggle.setAnimateEnabled(false);
    抽屉行设置进度(1f);
    //创建片段并调用此方法
    setNavigationFragments(新的StopAnimationFragment());
    打破
    案例1:
    mDrawerToggle.setAnimateEnabled(false);
    抽屉行设置进度(0f);
    //创建片段并调用此方法
    setNavigationFragments(新的StopAnimationFragment());
    打破
    案例2:
    mDrawerToggle.setAnimateEnabled(true);
    mDrawerToggle.syncState();
    //创建片段并调用此方法
    setNavigationFragments(新的StartAnimationFragments());
    打破
    案例3:
    if(抽屉颜色){
    drawerArrowColor=false;
    drawerRow.setColor(R.color.ldrawer\u color);
    }否则{
    drawerArrowColor=true;
    drawerRow.setColor(R.color.drawer\u箭头\u第二种颜色);
    }
    mDrawerToggle.syncState();
    //创建片段并调用此方法
    setNavigationFragments(新的ChangeColorFragments());
    打破
    案例4:
    //创建片段并调用此方法
    setNavigationFragments(新的githubPageFragments());
    打破
    案例5:
    //创建片段并调用此方法
    setNavigationFragments(新的ShareFragments());
    打破
    案例6:
    //创建片段并调用此方法
    setNavigationFragments(新RateFragments());
    打破
    }
    }
    });
    }
    P