首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >切换的Android工具栏actionLayout会在按菜单时导致文本跳转。

切换的Android工具栏actionLayout会在按菜单时导致文本跳转。
EN

Stack Overflow用户
提问于 2015-02-22 23:01:20
回答 2查看 2.3K关注 0票数 3

请参阅我的项目:https://github.com/paulpv/ToolbarSwitch

我正在为Android (又名:新ActionBar)做一个简单的定制布局。这个简单的控件向工具栏添加了一个开关,在这里可以在洋红色中高亮显示:

我的问题是,当按下溢出菜单时,开关的文本会跳到工具栏的顶部,关闭溢出菜单时仍然是这样:

一个类似的事情发生在景观导向(微妙的区别是溢出菜单弹出没有任何顶部填充)。

我能对菜单项的actionLayout做些什么来防止文本跳转?

菜单/menu_main.xml

代码语言:javascript
复制
<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=".MainActivity">

    <item
        android:id="@+id/action_switch"
        android:title="@string/action_switch"
        app:actionLayout="@layout/toolbar_switch"
        app:showAsAction="always" />

    <item
        android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="never" />
</menu>

布局/工具栏_Swit.xml

代码语言:javascript
复制
<Switch xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/action_switch"
    android:text="@string/action_switch"
    android:switchPadding="10dp"
    android:background="#ff00ff"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

显然,我认为我可以创建两个视图,一个TextView和一个开关,其中我分别在TextView上设置文本,而不是直接设置开关的text...but --我更愿意直接在开关上设置文本。

我还有几个问题:

  1. 当使用ActionBarActivity并膨胀工具栏菜单时,为什么在onCreateOptionsMenu之前调用onResume?
  2. 相反,在与#1相同的情况下,为什么onCreateOptionsMenu不在onCreate和onResume之间调用?
  3. 在景观模式下,标题文本的大小明显较小;这是预期的和可取的吗?
  4. 如何将景观标题文本大小设置为与肖像文本大小相同?

谢谢!

光伏

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-01 21:58:11

我按照您的代码将开关添加到我的操作栏中,通过将开关的宽度设置为wrap_content,可以解决“跳转文本”的问题,方法如下:

代码语言:javascript
复制
<Switch xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/action_switch"
    android:text="@string/action_switch"
    android:switchPadding="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
/>
票数 1
EN

Stack Overflow用户

发布于 2015-03-12 23:12:41

我放弃了尝试使用开关或SwitchCompat控件的内置文本字段。最后,我提供了一个带有单独TextView字段的布局:

布局/工具栏_Swit.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/action_switch_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingEnd="10dp"
        android:paddingRight="10dp"
        android:text="Switch"
        android:textAllCaps="true"
        tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry"/>

    <android.support.v7.widget.SwitchCompat
        android:id="@+id/action_switch_control"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28664412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档