2013-04-28 55 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