Android 如何通过侧菜单更改主布局
关于:我只需点击菜单 “Rate”甚至其他菜单,我想更改右箭头显示的主视图,但如何更改?这里是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=
您似乎有两种选择:
Intent rateIntent = new Intent(CurrentActivity.this, NextActivity.class));
startActivity(rateIntent);
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);
NextFragment nextFrag= new NextFragment();
this.getFragmentManager().beginTransaction()
.replace(R.id.Layout_container, nextFrag,TAG_FRAGMENT)
.addToBackStack(null)
.commit();
<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