3

一番下に RadioGroup があり、アプリケーションのナビゲーションとして機能する 4 つのボタンがあります (これが Android アプリの非標準であることはわかっていますが、クライアントが望んでいたことです)。これは、次のようになります。

ラジオ ボタン - 正しい

これは、Nexus 7 で問題なく表示され、IDE のエミュレーターとプレビューでも問題なく表示されます。ただし、Galaxy S Note 2 にロードすると、次のようになります。

ラジオ ボタン - 不正解

この特定のデバイスでは、画像が右に「シフト」しているように見えるため、画像が切り取られています。小さいデバイスでは、さらに歪んで途切れる気がします。約 35 dp の負の左マージンを手動で行うと、実際には完璧に見え、うまく整列します (もちろん、その解決策は他のデバイスでは機能しません)。

奇妙なのは、自分のコードで特別なことをしているようには見えず、非常に単純に見えることです。参考までに、ボタンを 3 つだけに変更して、ボタンは右に移動し、実際には中央に配置されません (ただし、3 つしかない場合はカットオフされません)。重力や重量を微調整したり、画像を交換したりして、何度試しても、なぜこれを行っているのかわかりません。現在、これらには /xhdpi イメージのみを使用しており、それぞれのサイズはそれぞれ約 130x130 です。

参考までに、私のレイアウト ファイルの RadioGroup の基になるコードを次に示します (RelativeLayout にあります)。

    <RadioGroup
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/tab_radio_group"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal"
            android:background="@drawable/navigation_base"
            android:paddingTop="15dp">
        <RadioButton
                android:id="@+id/button_scan"
                style="@style/navbar_button"
                android:drawableTop="@drawable/scan"/>
        <RadioButton
                android:id="@+id/button_view_order"
                style="@style/navbar_button"
                android:drawableTop="@drawable/view_order"/>
        <RadioButton
                android:id="@+id/button_complete_order"
                style="@style/navbar_button"
                android:drawableTop="@drawable/complete_order"/>
        <RadioButton
                android:id="@+id/button_settings"
                style="@style/navbar_button"
                android:drawableTop="@drawable/settings"/>
    </RadioGroup>

navbar_button のスタイル要素は次のとおりです。

    <style name="navbar_button">
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:button">@null</item>
        <item name="android:gravity">center_horizontal</item>
        <item name="android:layout_weight">1</item>
        <item name="android:textSize">12dp</item>
    </style>

ここで明らかな何かが欠けているかもしれませんが、これについて何か考えはありますか? 前もって感謝します!

4

2 に答える 2

2

これを修正するには、RadioGroup と RadioButtons を放棄する必要があり、ボタンを使用したシンプルな線形レイアウトを採用しました。それでも比較的単純なコードが作成され、RadioButton ではなく通常の Button で動作するように Java コードを少し変更するだけで済みました。興味がある場合は、変更されたレイアウトを次に示します。

<LinearLayout android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:id="@+id/tab_radio_group"
              android:layout_alignParentBottom="true"
              android:orientation="horizontal"
              android:background="@drawable/navigation_base"
              android:paddingTop="15dp">

    <Button
            android:id="@+id/button_scan"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@android:color/transparent"
            android:drawableTop="@drawable/scan"/>
    <Button
            android:id="@+id/button_view_order"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@android:color/transparent"
            android:drawableTop="@drawable/view_order"/>
    <Button
            android:id="@+id/button_complete_order"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@android:color/transparent"
            android:drawableTop="@drawable/complete_order"/>
    <Button
            android:id="@+id/button_settings"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@android:color/transparent"
            android:drawableTop="@drawable/settings"/>
</LinearLayout>
于 2013-06-17T16:06:41.673 に答える