当前位置: 首页 > 知识库问答 >
问题:

Android-工具栏和状态栏作为内容更改的共享对象

施招
2023-03-14

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

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

我尝试添加一个SharedElementCallback,并在其中循环工具栏和选项卡的子级,并将它们全部添加到渐变转换中——但这并不影响工具栏和选项卡内容的行为。

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

评论后添加了屏幕截图:

活动A

活动B

共有1个答案

封锐藻
2023-03-14

每个活动都有自己的菜单,所以你必须为每个活动创建菜单,即使它们是相同的。

但是,如果愿意,可以只创建一个菜单,并创建一个自定义类来操作菜单;然后,您可以在任何活动的onCreateOptions菜单onOptions项Selected上调用此自定义类。

下面的代码就是一个例子。

自定义类:

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

}
 类似资料:
  • 我最近遇到了协调器布局的问题。当我尝试创建简单的折叠工具栏布局(如本例所示)时,工具栏似乎位于状态栏下,如下图所示(在preLolipop设备上,一切都正常,因为应用程序不会在状态栏下绘制)。 我的活动布局的代码片段: My Styles(仅限21版),其中BaseAppTheme父级为Theme.AppCompat.Light.NoActionBar:

  • 我想整合一些像这样的东西: 我已经这样做了,但是我似乎不能把图像视图放在工具栏下面。没有工具栏,我可以在状态栏下制作,但是把这两者结合起来是不可能的。 这是我的布局: 在我的活动中,我做了以下工作: 我还声明了一个 styles-v21.xml 文件: 并将其设置为Photo活动的默认样式。我已经尝试将工具栏放在FrameLayout中,但这样做我的工具栏只会隐藏,如下所示: 提前感谢。 已修复,

  • 我在这个问题上做了一些研究,但我找不到一个完整的解决方案,所以,一步一步,通过一些尝试和错误,我终于找到了我们如何实现这些结果:拥有一个透明或彩色的和。看我下面的回答。

  • 如何从工具栏中获取图标以更改为使用bbdd中看到的方法获得的新图标。问题是我无法访问更新活动的事件以更改图标。我尝试使用onPreareOptionsMenu方法,但无法使其工作。我无法通过将代码放入onStart来做到这一点,因为它告诉我菜单对象为空或无效。 我的活动由AppCompactActive扩展并通过AdapterView加载。当我返回片段对话框或从下一个活动开始时,我遇到了问题。 谢

  • 我在Android上遇到了一个问题。所有东西都在状态栏下方绘制,状态栏为白色,而不是“primaryDarkColor”。 我搜索了很多,尝试了很多解决方案,但都没有成功。我试过这样的方法: 绘制整个窗口,但在其他没有工具栏且只有背景图像的屏幕上有其他不良影响(android:windowBackground) 用v21风格绘制statusbar(android:statusBarColor)(但

  • 在我的一个应用程序中,我为状态栏设置了半透明的颜色。 在前两个屏幕上,它显示如预期的,但在第三个屏幕上,它将改变状态栏的样式。它将转换为灰色半透明。 预期屏幕样本: 本期: 我已经完成了与在应用程序中显示灯光内容状态栏相关的所有更改。 将状态栏显示为 还可以向plist添加标志,如下所述。 但在我的应用程序中仍然存在上述问题。 任何帮助都将不胜感激。