2016-07-12 10 views
2

Ich habe eine XML-Datei für das Menü erstellt und ich aktualisiere sie in der onCreateOptionsMenu() Methode.Die Optionen im Menü Optionen funktionieren nicht, wenn die Scroll-Ansicht verwendet wird

Die Menüpunkte funktionieren in Lollipop-Gerät auch mit verschachtelten Scrollview, funktionieren aber nicht (sie sind sichtbar, aber ich kann nicht auf die Elemente klicken) in früheren Versionen.

Wenn ich die Scrollview entfernen, funktionieren sie gut. Aber wenn ich eine Auffüllung von ?attr/colorPrimary oder mehr als das zum Scrollview gab, funktioniert es nicht. Gibt es ein Problem mit NestedScrollView oder ScrollView mit Aktionsleiste? Ich brauche die Bildlaufansicht. Wo mache ich falsch? Datei

Aktivität Layout:

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

</android.support.design.widget.AppBarLayout> 

<android.support.v4.widget.NestedScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingTop="?attr/actionBarSize"> 

    <include layout="@layout/content_display_list" /> 

</android.support.v4.widget.NestedScrollView> 

<com.google.android.gms.ads.AdView 
    android:id="@+id/adView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_gravity="bottom" 
    ads:adSize="BANNER" 
    ads:adUnitId="@string/banner_ad_unit_id"> 
</com.google.android.gms.ads.AdView> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|start" 
    android:layout_marginBottom="55dp" 
    android:layout_marginLeft="@dimen/fab_margin" 
    android:src="@android:drawable/ic_input_add" 
    android:tint="#ffffff" 
    app:backgroundTint="#86e384" /> 

</android.support.design.widget.CoordinatorLayout> 

Menu XML-Datei:

<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.manisankarj.todolist.DisplayList"> 
    <item 
     android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     app:showAsAction="ifRoom" /> 
    <item 
     android:id="@+id/menu_displaylist_past" 
     android:title="Past Items" 
     android:icon="@android:drawable/ic_lock_idle_alarm" 
     app:showAsAction="always" /> 
</menu> 

Aktivität Datei:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_display_list); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
} 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_display_list, menu); 
    return true; 
} 

Antwort

1

ich es endlich herausgefunden. Ich habe gerade die gesamte NestedScrollView in eine FrameLayout verpackt und die Optionen Menüpunkte reagieren jetzt in Pre-Lollipop-Geräten.

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <include layout="@layout/content_display_list" /> 

    </android.support.v4.widget.NestedScrollView> 

</FrameLayout> 

Aber ich verstehe immer noch nicht, warum es sich nur auf Pre-Lollipop-Geräten so verhielt. Kann ein Fehler mit der Aktionsleiste sein.