【发布时间】:2015-12-09 20:21:15
【问题描述】:
该项目具有工具栏的活动。动态变化的片段中的活动。根据片段应该改变内容工具栏。 转到第二个片段应该会出现在工具栏上的 nazat 箭头中,该箭头返回到前一个片段。
public class StartPageActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private Toolbar mToolbar;
private NavigationView mNavigationView;
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle drawerToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start_page_activity);
setTitle("ForgetFul");
getFragment(new MainFragment());
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
mNavigationView = (NavigationView) findViewById(R.id.main_drawer);
mNavigationView.setNavigationItemSelectedListener(this);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_widget);
drawerToggle
= new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.drawer_open, R.string.drawer_close);
mDrawerLayout.setDrawerListener(drawerToggle);
drawerToggle.syncState();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
Log.i("Activity", "Setting");
return true;
}
if (android.R.id.home == id) {
Log.i("One", "Dude");
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
drawerToggle.onConfigurationChanged(newConfig);
}...
在active中从一开始就显示MainFragment。 在第二个活动中,我使用以下代码:
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
出现“向上”箭头,但是当我单击箭头时,始终打开 NavigationView。 如何解决? 附言对不起英语:(
【问题讨论】:
-
按(手机的)返回键是否可以返回到上一个片段?
-
我特意询问的是返回键,而不是工具栏中的向上箭头。
-
yap....当按返回键(电话)时,我返回到上一个片段
-
onBackPressed () when menuID == android.R.id.home ?
-
当我删除它的 mNavigationView = (NavigationView) findViewById(R.id.main_drawer); mNavigationView.setNavigationItemSelectedListener(this); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_widget); drawToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.drawer_open, R.string.drawer_close); mDrawerLayout.setDrawerListener(drawerToggle);抽屉切换.syncState();从活动。 menuId == android.R.id.home 工作,但我不能删除这部分代码。
标签: android android-fragments toolbar navigationview