2016-04-11 28 views
0

今は問題があります。
私は、3つのボタンを表示する必要がある状況があります。ボタンは、その時に1つだけアクティブにすることができます。
「ImageButton」を使用して、クリック/非クリックの状態を自分で処理しました。 しかし、これをRadioGroupとして切り替えることを選択しました。なぜなら、このような種類の振る舞いを処理する必要があるからです。
私はこれをしたい:RadioButton:3つのボタンを水平に背景に合わせる

  • 3つのラジオボタンは同じ行にする必要があります。
  • バックグラウンドとして使用される画像の比率は、デバイスに関係なく同じのままでなければなりません。
  • 可能であれば、私は横のスペースに関係なく、デバイスの同じ割合を占めるようにボタンをしたいと思います。**

を私が試した、量特性を、alignParentLeft、右、ハードなサイズが、きれいな解決策を見つけることができません。

私を助けてもらえますか?ここで

はボタンです:LinearLayoutからRadioGroup継承しているので

<RadioGroup 
    android:id="@+id/mobiprint_mod_radio_group" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <RadioButton 
     android:id="@+id/radio_tag" 
     android:layout_width="96dip" 
     android:layout_height="68dip" 
     android:background="@drawable/tag_on" 
     android:button="@android:color/transparent" 
     android:layout_margin="0dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <RadioButton 
     android:id="@+id/radio_pe" 
     android:layout_width="96dip" 
     android:layout_height="68dip" 
     android:background="@drawable/pe_off" 
     android:button="@android:color/transparent" 
     android:layout_margin="0dp" 
     android:layout_centerHorizontal="true"/> 

    <RadioButton 
     android:id="@+id/radio_a7" 
     android:layout_width="96dip" 
     android:layout_height="68dip" 
     android:background="@drawable/a7_off" 
     android:button="@android:color/transparent" 
     android:layout_margin="0dp" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 
</RadioGroup> 
+0

属性を持つRADIOGROUPの開始タグを貼り付けてください。 –

答えて

0

、あなたがRadioButtons重みを使用することができます。
Radiogroupには、LinearLayoutのように、向きを水平に設定します。

<RadioButton 
    android:id="@+id/radio_tag" 
    android:layout_height="68dip" 
    android:layout_width="0dp" 
    android:layout_weight="1" 
    android:background="@drawable/tag_on" 
    android:button="@android:color/transparent" 
    android:layout_margin="0dp" 
/> 

<RadioButton 
    android:id="@+id/radio_pe" 
    android:layout_height="68dip" 
    android:layout_width="0dp" 
    android:layout_weight="1" 
    android:background="@drawable/pe_off" 
    android:button="@android:color/transparent" 
    android:layout_margin="0dp" 
/> 

<RadioButton 
    android:id="@+id/radio_a7" 
    android:layout_height="68dip" 
    android:layout_width="0dp" 
    android:layout_weight="1" 
    android:background="@drawable/a7_off" 
    android:button="@android:color/transparent" 
    android:layout_margin="0dp" 
/> 

RelativeLayoutに属している属性を削除しました。

注:重みはすべてであり、幅はすべて0dpです。
これは意図的なものです。

+0

こんにちは、ありがとう! そのように私は3つのボタンを持っていますが、高さは固定されており、重みの値のために幅が変わるため、各ボタンの背景として使用される画像の尺度は尊重されません。 あなたはそれについて考えていますか? ありがとう! –

+0

の背景は、コンテナのサイズに合わせて縮尺が変更されています。固定イメージが必要な場合は、代わりに 'button'属性を使うことを考えてください:' android:button = "@ drawable/a7_off" ' –

+0

試してみてください...この方法で、私のボタンとして使用したい画像が切り取られます画面の幅が十分でない場合私は、画面が小さすぎると、画面の幅が狭くなってしまいました。 –

0

下記のコードを入力してください。 radiogroupの方向を水平に定義し、weightsumを適用すると同時に、layout_weightを適用する必要があります。

<RadioGroup 
    android:id="@+id/mobiprint_mod_radio_group" 
    android:layout_width="match_parent" 
    android:layout_height="60dp" 
    android:orientation="horizontal" 
    android:weightSum="1"> 

    <RadioButton 
     android:id="@+id/radio_tag" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="0.33" 
     android:text="option A" /> 

    <RadioButton 
     android:id="@+id/radio_pe" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="0.33" 
     android:text="option B" /> 

    <RadioButton 
     android:id="@+id/radio_a7" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="0.33" 
     android:text="option C" /> 
</RadioGroup> 

はそれがあなたのために働くホープ:)

+0

こんにちは、ありがとう、 問題は、この方法では、私のボタンの高さは常に60dpになります。しかし、 "Weight"値のために、それらの幅が変わり、各ボタンのバックグラウンドの縮尺は維持されません:/ アイデアはありますか? –

+0

単一静的画面のアプリケーションを設計する場合は、相対レイアウトを使用して、必要に応じてラジオボタンをドラッグアンドドロップします。それ以外の場合は、複数の画面を設定してください。あなたがデザインしたいと思っているイメージを共有することができれば助かります。 –

関連する問題