2013-04-28 53 views
0

我正在使用Theme.Light.NoTitleBar,但根据需要切换到Theme.Holo.Light使用操作栏。主题开关导致按钮拉伸?

但是,我刚刚发现我的一些按钮已被拉伸。它们是具有自定义背景的标准按钮以及按下时更改颜色的xml。这是按钮的xml:

<Button 
      android:id="@+id/logOutBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="10dp" 
      android:layout_marginRight="10dp" 
      android:background="@drawable/logout_btn" /> 

它是相对布局。实际的背景是50px x 50px。奇怪的是我有几个相同布局的按钮,75px和100px正方形,他们很好。它只是这些越来越被牵引/伸展的小型。它在eclipse和物理设备上的设计视图中显示。

任何想法?

回答

1

只是想我会在这里回答我自己的问题,因为我找不到任何与此问题有关的其他问题。

我发现主题开关在我的按钮上设置了最小宽度和最小高度。我以前不认为我有过。但是在我的具体情况下,当高度为48dip时,它将最小宽度切换到64dip。我能够将其切换回48dip,以便定义XML按钮并解决它。因此,XML现在看起来是这样:

<Button 
      android:id="@+id/logOutBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="10dp" 
      android:layout_marginRight="10dp" 
      android:minWidth="48dip" 
      android:background="@drawable/logout_btn" /> 

对于表中创建的按钮我用:

LayoutParams lp = new LayoutParams(48, 48); 
myButton.setLayoutParams(lp); 
+0

我有同样的问题,任何想法,它从何而来?完全相同的值只有我从切换到Theme.AppCompat.Light – TomRichardson 2014-08-11 15:04:34

+0

我不确定,我认为这可能是一个日食问题是我最好的猜测! – 2014-08-11 18:44:59

+1

好吧我发现所有的设计指南都是围绕Android 3.0发布的,所以AppCompat主题和以上版本默认使用最小高度作为设计指南的一部分。你可以简单地覆盖它们,因为你说。 – TomRichardson 2014-08-12 08:20:18