2016-08-16 4 views
0

Weird UI Displayアプリケーションバーにメニューバーを上書きするにはどうしたらいいですか?

自分のアクティビティにリサイクルビュー+ビューページャー+ツールバーがあります。リサイクラビューの行を長くクリックすると、削除オプション付きのメニューバーが表示されます。しかし、これは私が得るものです。なぜ私のアプリケーション名の上に来るのかについてのアイデアはありますか?

これは私の主な活動のxmlです:私はいくつかの理由で表示されることは決してありませんアドオンやメニューについてを守っ

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    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" 
    android:id="@+id/main_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.kaad.sampleproject.MainActivity"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/main_activity_tool_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:background="?attr/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/main_activity_tablayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/main_activity_tool_bar" 
     android:background="?attr/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     app:tabIndicatorColor="#ff00ff" 
     app:tabMode="fixed" 
     app:tabSelectedTextColor="#ffffff" 
     app:tabTextColor="#d3d3d3" /> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/main_activity_viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/main_activity_tablayout" /> 

</RelativeLayout> 

:ここ は、両方の私のメニューのxmlです:

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/menu_bar_main" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    tools:context=".MainActivity"> 
    <item 
     android:id="@+id/menu_item_new" 
     android:icon="@drawable/ic_add_white_36dp" 
     android:title="@string/menu_new" 
     app:showAsAction="ifRoom|withText" /> 
    <item 
     android:id="@+id/menu_item_about" 
     android:title="@string/menu_about" 
     app:showAsAction="never" /> 
</menu> 

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/menu_bar_delete" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    tools:context=".MainActivity"> 
    <item android:id="@+id/menu_item_delete" 
     android:icon="@android:drawable/ic_menu_delete" 
     android:title="@string/delete" /> 
</menu> 

私のスタイルのXML

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

     <!--<item name="colorPrimary">#FF595951</item>--> 
     <!--<item name="colorPrimaryDark">#FF5C5C5C</item>--> 
     <!--<item name="colorAccent">#FFCCCCCC</item>--> 
     <!--<item name="android:textColorPrimary">#FF0FF0</item>--> 
     <item name="windowActionBar">true</item> 
     <item name="windowNoTitle">true</item> 
    </style> 

これが主な活動です:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_my_main); 

     database = new Database(this); 
     categories = database.getCategories(); 

     myToolbar = (Toolbar) findViewById(R.id.main_activity_tool_bar); 
     setSupportActionBar(myToolbar); 


     // Get the ViewPager and set it's PagerAdapter so that it can display items 
     myViewPager = (ViewPager) findViewById(R.id.main_activity_viewpager); 
     myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), MyMainActivity.this, categories); 
     myViewPager.setAdapter(myPagerAdapter); 

     // Give the TabLayout the ViewPager 
     myTabLayout = (TabLayout) findViewById(R.id.main_activity_tablayout); 
     myTabLayout.setupWithViewPager(myViewPager); 

     // Iterate over all tabs and set the custom view 
     for (int i = 0; i < myTabLayout.getTabCount(); i++) { 
      TabLayout.Tab myTab = myTabLayout.getTabAt(i); 
      myTab.setCustomView(myPagerAdapter.getTabView(i)); 
     } 
     bus.getInstance().register(this); 
    } 

についてボタンのこの私が

public class CustomMultiSelectorCallback extends ModalMultiSelectorCallback { 

     private int count; 
     public CustomMultiSelectorCallback(MultiSelector multiSelector) { 
      super(multiSelector); 
     } 

     @Override 
     public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { 
      super.onCreateActionMode(actionMode, menu); 
      count = 0; 
      actionMode.getMenuInflater().inflate(R.menu.list_item_delete, menu); 
      return true; 
     } 

答えて

0

私の主な処方箋フラグメントで私のメニューバーを呼び出していますどのようにされている問題:

<item 
    android:id="@+id/menu_item_about" 
    android:title="@string/menu_about" 
    app:showAsAction="never" /> 

"ifRoom"に決まっていない部分を更新する

表示されるメニューに関しては、相対レイアウトのように私にはもっと明白になりますか?ツールバーを一番上にして、後にビューが来るようにしたいそれが示している。

+0

メニューをアプリケーションバーより優先させたい。そしてそれの上に来ない。 –

+0

メニューが実際にあなたのアプリケーションバーであると思っていると誤解していない場合。 "サンプルカテゴリ"はあなたのテーブルレイアウトの名前です。これはDrawer Layout/Coordinatorレイアウトのもので、< - をクリックするとアクションのリストが開きます。私はそれがすべて間違っていると仮定しているかどうかを教えてください。 – sumandas

+0

はい。しかし、アプリケーション名がマニフェストファイルであると定義されている "シンプルなカテゴリ"ではないのですか? –

0

私は問題の1つを解決しました。これは私のコードで、ツールバーのボタンを追加して表示するために編集したものです。フラグメントであなたのonCreateで

まず、次の行を追加します。

setHasOptionsMenu(true);

第二には、あなたのスタイルで、NoActionBarを持っている何かにあなたのテーマを変更。私の場合、私はこれをしなかった:

<style name="AppThemeOfStyles"parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="colorPrimary">#FF595951</item> 
     <item name="colorPrimaryDark">#FF5C5C5C</item> 
     <item name="colorAccent">#FFCCCCCC</item> 
     <item name="android:textColorPrimary">#FF0FF0</item> 
     <item name="windowActionBar">true</item> 
     <item name="windowNoTitle">true</item> 
    </style> 

AppThemeがすでに定義されたテーマですので、私もAppThemeからのスタイルのAppThemeに私のテーマの名前を変更しました。だからあなたのテーマ名を別のものに変更する方がいいです。

これは、以下の結果に私たちをリード: enter image description here

しかし、私の削除はまだlongpress上のツールバーの一番上に来ています。

enter image description here 任意の提案、アドバイスが理解されるであろう:) UPDATED

オーバーレイが動作するために は、あなたのテーマでこれを使用します。 enter image description here

<item name="windowActionModeOverlay">true</item>

ここでは、最終的な結果であります

関連する問題