2016-09-22 5 views
1

menuaction barに設定するだけです。それは間違った方法で動作します。 はちょうどこのように: enter image description hereフラグメントタイムで常にダブルタイムメニューを表示

enter image description here

私はほとんどすべての夜の問題を検索しますが、答えを見つけることができませんでした。ここ は、フラグメントでonCreatOptionsMenu方法のための私のコードです:

public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { 
      super.onCreateOptionsMenu(menu,inflater); 
      inflater.inflate(R.menu.menu_detail,menu); 
      MenuItem shareItem = menu.findItem(R.id.menu_item_share); 
      ShareActionProvider mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem); 
      mShareActionProvider.setShareIntent(createShareForecastIntent()); 
     } 

そしてここでは、活動のコードです:ここで

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_detail); 
    //getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportFragmentManager().beginTransaction() 
      .add(R.id.detailfragment, new DetailActivityFragment()) 
      .commit(); 
} 

は私のメニュー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" 
     tools:context="com.example.android.sunshine.app.DetailActivity.DetailActivityFragment"> 
<item 
    android:id="@+id/menu_item_share" 
    app:showAsAction="ifRoom" 
    android:title="Share" 
    app:actionProviderClass="android.support.v7.widget.ShareActionProvider"   /> 
    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:title="@string/action_settings" 
     app:showAsAction="never" /> 
</menu> 

ここに私のアクティビティのレイアウトがあります:

<fragment 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/detailfragment" 
           android:name="com.example.android.sunshine.app.DetailActivity$DetailActivityFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:layout="@layout/fragment_detail" 
    tools:ignore="MergeRootFrame"/> 

フラグメントレイアウト:

<FrameLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     > 
     <TextView 
      android:id="@+id/detailText" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="hello boy"/> 
</FrameLayout> 

誰も私を助けることができますか?

答えて

0
断片のonCreateビューで

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_layout, container, false);  
     setHasOptionsMenu(true); 
     return rootView; 

} 

とあなたの注意のためのonCreateOptionsMenu

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     super.onCreateOptionsMenu(menu, inflater); 
     menu.clear(); 
     inflater.inflate(R.menu.menu_detail, menu); 
} 
+0

それは私のために働きます。ありがとう! – generalSoap

+0

あなたの歓迎:) – Pavya

0

あなたのメニューバーはどのように見えますか?
今では、2つの「共有」アイコンの後に「詳細」アイコンが表示され、空白スペース(または暗い色)が表示されます。
もう少し説明してください。

+0

おかげインチ私はちょうどメニューバーに1つの共有ボタンが欲しいです、そして、私のメニューXMLファイルはちょうど1つだけを定義しています。しかし、それは常にアクションバーに2つの共有ボタンを表示します。あなたは質問の中で私の絵を見渡すことができます。 – generalSoap

関連する問題