9

在我的应用程序中,我将工具栏和状态栏设置为共享对象 ,如本文选项 #2 中所建议的那样

工具栏和选项卡的一般行为和轮廓非常好 - 唯一的问题是当我移动到活动 B 时,工具栏的一些 UI 元素没有参与内容转换,特别是工具栏标题和菜单图标。

我尝试添加 SharedElementCallback 并在其中循环工具栏和选项卡的子项并将它们全部添加到淡入淡出过渡- 但它不会影响工具栏和选项卡内容的行为。

知道如何从这里开始吗?期望的效果是让工具栏的元素(标题、向上按钮、菜单图标)参与内容转换。

评论后添加截图:

活动一

在活动 A

活动 B

在活动 B

4

1 回答 1

1

每个活动都有自己的菜单,因此您必须为每个活动创建菜单,即使它们相同。

但是,如果您愿意,您可以只创建一个菜单并创建一个自定义类来操作菜单;onCreateOptionsMenu然后你在onOptionsItemSelected任何活动中调用这个自定义类。

以下代码是一个示例。

自定义类:

public class MenuActionBar {

    public static void createOptionsMenu(final Activity activity, Menu menu) {

        activity.getMenuInflater().inflate(R.menu.yourmenu, menu);

        // Do whatever you wanna do

    }

    public static boolean optionsItemSelected(Activity activity, MenuItem item) {

        // Do whatever you wanna do

    }

}

活动:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuActionBar.createOptionsMenu(this, menu);

    return super.onCreateOptionsMenu(menu);

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    return MenuActionBar.optionsItemSelected(this, item)
            ? true : super.onOptionsItemSelected(item);

}
于 2015-06-02T13:56:41.400 回答