раздувать меню в проблеме CollapsingToolbarLayout

Я использую библиотеку поддержки дизайна CollapsingToolbarLayout. Моя проблема в том, что я не могу раздуть значок действия меню на панели инструментов. Я использую приведенный ниже код для создания CollapsingToolbarLayout.

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="240dp">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginBottom="32dp"
        app:expandedTitleMarginEnd="64dp"
        app:expandedTitleMarginStart="48dp"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">
        <ImageView
            android:id="@+id/profile_image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax" />
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    </android.support.design.widget.CollapsingToolbarLayout>


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

Во фрагменте я использую

 @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.menu_emp_details, menu);
    super.onCreateOptionsMenu(menu,inflater);
}

и setHasOptionsMenu(true);


person Mr Nice    schedule 31.07.2015    source источник
comment
В чем проблема? Любая трассировка стека?   -  person Marko    schedule 03.08.2015
comment
@Marko Я хочу использовать значок действия на панели инструментов моего фрагмента. Проблема в том, что он не отображается на панели инструментов.   -  person Mr Nice    schedule 03.08.2015
comment
Вы настроили панель инструментов с помощью setSupportActionBar(toolbar);?   -  person Marko    schedule 03.08.2015
comment
Не могли бы вы предоставить весь код вашего макета, а также реализации фрагментов и действий?   -  person Mateus Gondim    schedule 05.08.2015


Ответы (2)


Есть два способа сделать это: сначала вам нужно сообщить Activity, что Toolbar вы используете Action Bar, используя: setSupportActionBar(toolbar)

Остальное (рекомендую):

Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
toolbar.inflateMenu(R.menu.your_menu_items);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem menuItem) {
            TODO: Write your logic here
        }
});
person Janhavi    schedule 08.08.2015

Я полагаю, что когда вы говорите «Значок действия на панели инструментов», вы имеете в виду действие UP в левой части панели инструментов.

Если вы имеете в виду правое боковое меню со значком из трех точек, ответ @Janhavi правильный. Если вы имеете в виду значок UP слева, читайте ниже:

Вам просто нужно настроить его на панели инструментов после того, как вы раздуете макет, например, следующий код:

@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// inflate your view normally
View root = inflater.inflate(R.layout.my_layout, container, false);

// configure your views
Toolbar toolbar = (Toolbar)root.findViewById(R.id.toolbar);
toolbar.setNavigationIcon(R.drawable.icon);
toolbar.setNavigationOnClickListener(new View.OnClickListener(){
    @Override public void onClick(View v){
        // TODO: code your UP navigation here
        // probably: getFragmentManager().popBackStack ?
    }
});

// return the view
return root;
}

значок можно скачать отсюда: https://www.google.com/design/icons/

person Budius    schedule 08.08.2015