2016-03-03 88 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