0

我的工具栏按钮没有显示在我试过的片段中setHasOptionsMenu(true);。当我点击导航抽屉项目时,它会为每个片段加载新片段,我想要显示不同的操作栏按钮(通知或保存)。以下是我的代码,预先感谢。Actionbar按钮没有显示在片段

以下是我片段码:(这是相同的导航抽屉所有碎片)

public class Company1 extends Fragment { 

@Override 
public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
    } 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_company_profile,container, false); 

    init(view); 

    btnAdd.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      showAddDialog(); 
     } 
    }); 


    return view; 
} 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.company_profile, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.notification: 
      break; 

    } 
    return super.onOptionsItemSelected(item); 
} 

} 

这是company_profile.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" > 

    <item 
     android:id="@+id/notification" 
     android:icon="@drawable/ic_action_notification" 
     android:title="@string/mnuNotificationText" 
     app:showAsAction="always"/> 
    </menu> 
+0

I它没有出现在任何片段中,或者只在某些情况下(没有更新等)? – Shaishav

+0

不是所有带导航抽屉的片段。 – Harshad07

回答

1

请检查此代码段

public class Company1 extends Fragment { 

@Override 
public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    } 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_company_profile,container, false); 
    setHasOptionsMenu(true); 
    init(view); 

    btnAdd.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      showAddDialog(); 
     } 
    }); 


    return view; 
} 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.company_profile, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.notification: 
      break; 

    } 
    return super.onOptionsItemSelected(item); 
} 
@Override 
    public void onPrepareOptionsMenu(Menu menu) { 
     //You can change menuitem property 
     //menu.findItem(R.id.notification).setVisible(true); 
     super.onPrepareOptionsMenu(menu); 

    } 
}