2016-03-03 75 views
1

我的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)); 
    } 

它没有帮助。我怎样才能解决这个问题?

+0

尝试删除对'toolbar.setNavigationOnClickListener()'的调用,它可能会覆盖单击事件,请参阅此处:http://stackoverflow.com/questions/28263643/tool-bar-setnavigationonclicklistener-breaks-actionbardrawertoggle-functionality –

回答

0

添加此行来配置你的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); 
+0

主页按钮不可点击 – Jackky777

+0

添加此行以配置您的getSupportActionBar: 'getSupportActionBar()。setHomeButtonEnabled(true);' –

+0

我昨天试过了。仍然不工作 – Jackky777