1

私はlinearlayoutを持っており、このLinearlayoutで実行時に可変数のボタンを膨らませる必要があります。今私の問題は、この線形レイアウトの向きを指定するときです。水平または垂直にすると、問題が発生します。例で説明します:-

例 1: 入力は 3 ボタン

期待される出力: Button1 Button2 Button3 (3 つすべてが 1 行に完全に収まる場合)

3 つのボタンはすべて、この線形レイアウトで、完全に収まる場合は同じ行 (水平のように) に表示する必要があります。

例 2: 入力が 4 つのボタンで、行全体に収まらない

予想される出力:- Line1:- Button1 Button2 (Button3 がこの行に完全に収まらないと仮定)

             Line2:-  Button3 Button4

現在、LinearLAyout の向きを水平に設定すると、4 つのボタンすべてが 1 行に表示され、UI が台無しになります。向きを垂直として指定した場合も同様です。

実行時にこれを処理して、完全なボタンのみが 1 行に表示され、複数の行に広がるようにする方法を教えてください。このケースを処理する一般的な方法。

レイアウトは、静的な目的のために次のように考えることができます:-

<LinearLayout
android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="horizontal">
   <Button
    android:id="@+id/button_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="YYYYYYYYYYYOOOOOOOOOOOOO"         
    android:textSize="75sp"/>
   <Button
    android:id="@+id/button_2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="AAAAAAFFFFFFFFFFGGGGGGGGG"         
    android:textSize="75sp"/>

 </LinearLayout>
4

2 に答える 2

1

LinearLayout はそのようには機能しません。項目を垂直または水平にレイアウトします (折り返されません)。いくつかのオプションがあります。

ボタンのサイズが異なるように思えます(おそらくgridviewを使用したくないでしょう)。複数のHorizo​​ntalLinearLayouts(ボタンを保持する)を収容するVertical LinearLayoutを作成することもできます。

または、独自のカスタム ViewGroup をロールすることもできます。どちらの方法でも、行に何が収まるかを判断するための計算ロジックを記述する必要があります。カスタム ビュー グループは、最終的にはよりクリーンになる可能性がありますが、ビューに関するより多くの知識が必要です。

于 2013-05-20T22:51:59.567 に答える
0

私が理解しているのは、n個のビューを動的にロードする必要があり、ビューを親ビューに自動的に引き継がせたいということです。必要なのは、単純なアダプターを備えたグリッドビューだけだと思います。あなたのグリッドビューの「セル」は、あなたの場合のボタンになります。それについてはたくさんの情報があります。これは、Google から提供された簡単なガイドです。

http://developer.android.com/guide/topics/ui/layout/gridview.html

お役に立てれば幸いです。よろしく。

于 2013-05-20T21:15:52.750 に答える