我使用Android 2.2手机创建了一款应用。我在活动中有四个切换按钮。我在运行Android 4.2的平板电脑上查看了我的应用程序,并且指示灯不在按钮的底部。
我首先想到它可能会被切断,所以我按下了按钮高度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:
<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" />
答案 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
继承的主题以适应。