1

私は向き =vertical の線形レイアウトを使用しています。この線形レイアウト内に異なる重みを持つ 3 つのボタンがあります (そのうちの 3 つがページを水平方向に埋めるようにします)。ボタンを短く見せたいので、高さを42ディップにしました。大画面のデバイスでは問題ないように見えますが、非常に小さな画面のデバイスでテストすると、サイズの問題により、中央のボタンの単語の半分が消えてしまいます。これを解決するにはどうすればよいですか?

<LinearLayout
    android:id="@+id/StatisticsButtons"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dip"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/viewAllBtn"
        android:layout_width="0dp"
        android:layout_height="42dip"
        android:layout_weight="1"
        android:background="@drawable/button_for_statistic"
        android:text="View All"
        android:textColor="@drawable/button_text_color_statistic"
        android:textSize="17dip" />

    <Button
        android:id="@+id/viewPartialBtn"
        android:layout_width="0dp"
        android:layout_height="42dip"
        android:layout_marginLeft="10dip"
        android:layout_weight="1.3"
        android:background="@drawable/button_for_statistic"
        android:text="View partial record"                        //"View partial" displayed , I guess the screen is too "narrow" to display the "record"
        android:textColor="@drawable/button_text_color_statistic"
        android:textSize="17dip" />

    <Button
        android:id="@+id/viewLeaveBtn"
        android:layout_width="0dp"
        android:layout_height="42dip"
        android:layout_marginLeft="10dip"
        android:layout_weight="1"
        android:background="@drawable/button_for_statistic"
        android:text="Leave"
        android:textColor="@drawable/button_text_color_statistic"
        android:textSize="17dip" />
</LinearLayout>

<item android:state_pressed="true"><shape>
        <solid android:color="#0033d434" />

        <stroke android:width="2dp" android:color="#aaa22f" />

        <corners android:radius="2dp" />

        <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
    </shape></item>
<item><shape>
        <solid android:color="#aaa22f" />

        <corners android:radius="2dp" />

        <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
    </shape></item>

4

3 に答える 3

0

layout_weightを使用する場合、コントロールの幅は比率で決定されます。あなたの場合、あなたはあなたのボタンに1、1.3、1の重みを与えました。ただし、2番目のボタンviewPartialBtnにはもっと幅が必要です。あなたはそれの幅を増やす必要があります。layout_weightを2、5、1として指定すると、[すべて表示]、[部分レコードの表示]、および[残す]のテキストに必要な幅になるように試すことができます。

言い換えると、linearlayoutに、コントロールの幅を2:5:1の比率にするように指示します。

于 2012-10-03T04:10:40.327 に答える
0

レイアウト全体をScrollView. また、テスト/ターゲットにしている画面サイズも考慮してください。いくつかのデフォルトのエミュレーター サイズは非常に小さいため、実際にこれらのサイズを持つ携帯電話はほとんどありません: Android ダッシュボード: 画面のサイズと密度.

編集:

また、さまざまな画面サイズに対応する代替リソースを提供することも検討してください。画面の幅(またはその他のもの)に基づいてテキストサイズを調整できます。リソースAPI の提供ガイドを参照してください。

于 2012-10-03T04:32:03.217 に答える
0

これは、ボタンのサイズに固定密度値 (つまり 42 dp) を使用しているためです。アセット/ウィジェットがすべてのデバイスに適切にスケーリングおよび適合するように、可能な限り wrap_content または match_parent に固執する必要があります。ボタンの高さと幅を wrap_content に設定すると、複数のデバイスでテキストが完全に折り返されます。

于 2012-10-02T23:34:14.110 に答える