主页按钮不可点击
问题描述:
我的SettingsActivity extends AppCompatActivity
我有SettingsFragment extends PreferenceFragment
。当我尝试按工具栏中的home-buttion时,它不起作用。这里是我的代码主页按钮不可点击
toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/settingsToolbar"
android:layout_width="match_parent"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_height="?android:actionBarSize"
android:background="@color/colorPrimary" />
SettingsActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupToolBar();
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
private void setupToolBar() {
getLayoutInflater().inflate(R.layout.toolbar, (ViewGroup) findViewById(android.R.id.content));
Toolbar toolbar = (Toolbar) findViewById(R.id.settingsToolbar);
setSupportActionBar(toolbar);
setTitle(getResources().getString(R.string.settings));
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setFocusable(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
我试图解决它以这样一种方式:去掉setNavigationOnClickListener
和补充一点:
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return (super.onOptionsItemSelected(menuItem));
}
它没有帮助。我怎样才能解决这个问题?
答
添加此行来配置你的getSupportActionBar:
getSupportActionBar().setHomeButtonEnabled(true);
同时使用的代码在您的活动象下面这样:
在setupToolbar方法:
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Log.d("cek", "home selected");
finish();
}
});
,并在您的onOptionsItemSelected方法:
if (item.getItemId() == android.R.id.home) {
finish();
}
return super.onOptionsItemSelected(item);
尝试删除对'toolbar.setNavigationOnClickListener()'的调用,它可能会覆盖单击事件,请参阅此处:http://*.com/questions/28263643/tool-bar-setnavigationonclicklistener-breaks-actionbardrawertoggle-functionality –