动态更改片段中的工具栏布局

时间:2015-09-16 22:28:18

标签: android android-fragments

所以我创建了menu_event.xml来自定义我的片段的工具栏布局,如下所示:

<item android:id="@+id/action_add"
    android:icon="@drawable/ic_action_new"
    android:title="@string/action_settings"
    android:showAsAction="ifRoom"
    tools:ignore="AppCompatResource" />

<item android:id="@+id/action_search"
    android:icon="@drawable/search_icon"
    android:title="@string/action_search"
    android:showAsAction="ifRoom"
    tools:ignore="AppCompatResource" />

为了做到这一点,我在我的类中使用了onCreateOptionsMenu()方法,并且还在onCreateView()方法中设置了setHasOptionsMenu(true):

public class ListEventActivity extends Fragment {

    public ListEventActivity() {
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

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

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

但即使这样,它也不会改变工具栏布局,并且动作溢出项目仍然存在(而是将“设置”和“搜索”添加到其项目中......

关于如何解决它的任何想法?

2 个答案:

答案 0 :(得分:0)

您可以使用invalidateOptionsMenu(或supportInvalidateOptionsMenu以防使用AppCompat)方法刷新ActionBar。

答案 1 :(得分:0)

只需添加常规XML布局文件并使用findViewById查找视图并根据您的心愿操纵它。然后,您可以设置点击处理程序等以处理按钮单击