2016-07-12 2 views
2

메뉴 용 XML 파일을 만들었으며 onCreateOptionsMenu() 메서드로 부풀려 있습니다.스크롤보기를 사용할 때 옵션 메뉴 항목이 작동하지 않습니다.

중첩 된 scrollview가 있어도 Lollipop 장치에서 메뉴 항목이 제대로 작동하지만 이전 버전에서는 메뉴 항목이 작동하지 않습니다 (표시되지만 항목을 클릭 할 수 없음).

스크롤보기를 제거하면 제대로 작동합니다. 하지만 ?attr/colorPrimary 이상의 패딩을 주었을 때 scrollview에 패딩이 발생하지 않았습니다. 작업 표시 줄에 NestedScrollView 또는 ScrollView에 문제가 있습니까? 스크롤보기가 필요합니다. 내가 어디에서 잘못하고 있니?

활동 레이아웃 파일 :

<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> 

메뉴 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.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> 

활동 파일 :

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; 
} 

답변

1

나는 마침내 그것을 알아 냈어. 방금 전체를 FrameLayout으로 감쌌으며 옵션 메뉴 항목이 Lollipop 이전 버전의 기기에서 응답합니다.

<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> 

그러나 전 Lollipop 기기에서만 왜 그런 식으로 행동했는지 아직도 이해할 수 없습니다. 작업 표시 줄에 버그가있을 수 있습니다.

관련 문제