Android 4.2无法正确显示切换按钮

时间:2013-03-27 13:58:32

标签: android android-layout

我使用Android 2.2手机创建了一款应用。我在活动中有四个切换按钮。我在运行Android 4.2的平板电脑上查看了我的应用程序,并且指示灯不在按钮的底部。

incorrectly displayed toggle

我首先想到它可能会被切断,所以我按下了按钮高度200dp,但指示器仍然不存在。
我也是以编程方式调整宽度,但是评论它并没有帮助 切换在运行Android 2.2的手机上正确显示。

以下是其中一个按钮的XML:

<ToggleButton
    android:id="@+id/cat_btn1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView3"
    android:layout_alignParentLeft="true"
    android:textSize="12dp"
    android:onClick="toggleClicked"
    android:layout_marginLeft="10dp" />

我决定使用API​​ 17创建另一个项目,该项目只有一个切换按钮,并且显示正确,所以我不知道在我的第一个项目中导致问题的原因。

第二个项目图像和XML:

correctly displayed toggle

<ToggleButton
    android:id="@+id/toggleButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="56dp"
    android:layout_toRightOf="@+id/textView1"
    android:text="ToggleButton" />

1 个答案:

答案 0 :(得分:2)

使用自定义主题时要小心。在许多情况下,您需要根据API级别从适当的父主题继承,以获得您想要的外观。

使用Eclipse中的活动创建的现代项目将为您设置样式资源以鼓励这样做:

  • res/values/styles.xml定义AppBaseTheme,继承自API级别11之前的主题(例如Theme.Light

  • res/values-v11/styles.xml会覆盖AppBaseTheme以继承Holo主题(例如Theme.Holo.Light

  • res/values-v14/styles.xml可能存在以再次覆盖AppBaseTheme(例如,使用Theme.Holo.Light.DarkActionBar

  • res/values/styles.xml也有AppTheme,定义为从AppBaseTheme继承,您在清单中引用AppTheme,以及您的应用主题(或活动的主题) )

AppTheme中放置适用于任何API级别的自定义设置。在适当的AppBaseTheme中放置特定于API级别的自定义项。并且,如果您想要更改常规外观(例如,切换到黑暗/无操作栏),请使用适合该API级别的主题更改AppBaseTheme继承的主题以适应。