2011-08-26 20 views
12

レイアウトには2つのボタンがあり、大画面のデバイス(タブレット)では、その幅をキャップしてばかげて見えないようにしたいと思います。私はmaxWidth属性を使用することを期待していましたが、明らかに私のシナリオでは何もしません。レイアウト定義は次のとおりです。ボタンはレイアウトの全幅を使い、maxWidthの値は無視します。なぜボタンのmaxWidthが機能しないのですか?

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
> 
<Button 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:maxWidth="100dp" 
    android:text="Button 1" 
/> 
<Button 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:maxWidth="100dp" 
    android:text="Button 2" 
/> 
</LinearLayout> 

なぜ、この(明らかにクレイジーな)制限を回避する方法は?

+0

ボタンlayout_widthが0dpでwrap_contentでないのはなぜですか? – antlersoft

+0

@antlersoft - 0dpの幅とlayout_weightの組み合わせが、兄弟要素の幅と一致すると、幅が同じであることが保証されます – ataulm

答えて

11

両方のボタンからandroid:layout_weight="1"行を削除します。あなたは、画面サイズに応じて手動でボタンのサイズを計算する必要が


android:minWidth="50dp"android:layout_width="wrap_content"

EDITを追加します。まず、標準画面サイズを設定する必要があります。たとえば、画面幅400ピクセルのアプリを開発し、ボタンが

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
buttonWidth = 100 * (metrics.widthPixels/400); 

ユースケースを以下のようになり、すべてのデバイスで同じbutton width to screen width比率を維持するために100pxに広い、そして式の場合:
の場合画面の幅= 480ピクセル、ボタンの幅は120ピクセルです。

+2

なぜですか?ボタンのサイズはまったく変わらず、0の幅になります。 –

+0

これはレイアウト全体の幅を埋めるためにボタンが伸びている原因です。 minwidthも設定し、幅を0dpではなく 'wrap_content'に変更してください。 – Ronnie

+0

layout_weightを削除した場合、ボタンの縮尺は変わりません。これは私がしたいことです。デバイスのサイズに合わせて最大サイズまで拡大するボタンが必要です。 –

0

layout_widthにwrap_contentと0dpを設定してみてください。

+0

これは私が試した多くの変形の1つです。それはまったく違うものではありません。 –

0

幅/高さがそれほどまでの最大のスケールダウン、しかし、これは私の見解で働いている

 <Button 
      android:text="Center" 
      android:layout_width="100dp" 
      android:layout_height="fill_parent" 
      android:id="@+id/selectionCenterButton" 
      android:minWidth="50dp" 
      android:minHeight="50dp" 
      android:maxWidth="100dp" 
      android:maxHeight="50dp" 
      android:layout_weight="1" /> 

ボタンの親がコンテンツをラップするように設定されている..常に一緒に設定するahveように見えます400ワイド(4つのボタン)

+0

は私のためには機能しませんでした。 –

関連する問題