我有一个片段,当这个片段可见时,我想在我的ActionBar中显示一个项目。该项目是聊天图标,我想在ActionBar右侧显示此项目。
如何在片段可见时显示项目。 ?
我正在尝试这个。
<!--Chat Button Item -->
<item
android:id="@+id/action_chat"
android:icon="@drawable/batalha_icon_chat"
android:title="Chat"
app:showAsAction="never"
/>
动作条
public class ChatFrag extends Fragment implements View.OnClickListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.chat, container, false);
/** action bar */
ActionBar actionBar = ((CustomDrawerLayout)getActivity()).getSupportActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.action_bar)));
actionBar.setTitle("Chat with your opponent");
return rootView();
}
答案 0 :(得分:1)
我已经完成了与您的情况类似的send
按钮。
在menu_recipients.xml中,按如下方式添加send
:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.ui.RecipientsActivity">
<item android:id="@+id/action_send"
android:title="@string/action_send"
android:orderInCategory="100"
android:showAsAction="always"
android:visible="false"
android:icon="@drawable/ic_menu_send"/>
</menu>
在java文件中:
protected MenuItem mSendMenuItem;
@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_recipients, menu);
mSendMenuItem = menu.getItem(0);
return true;
}
protected AdapterView.OnItemClickListener mOnItemClickListener =
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (mGridView.getCheckedItemCount() > 0) { // change to check your Fragment
mSendMenuItem.setVisible(true);
} else {
mSendMenuItem.setVisible(false);
}
}
};