1

わかりました、私の問題は、n-TextViewsがあり、それらがプログラムでTableLayoutに追加されることです。これらのTextViewまたはTableLayoutのスタイルを設定するかどうかはまったく関係ありません。何かを追加するたびに、他のTextViewの後にTextViewが下部に追加されます。これらのビューには可変幅があり、テキスト長といくつかのピクセルから計算されます(WRAP_CONTENTは100%幅になりました...)。

It is like this right now:
------------------------------------------
[TextView 1]
[TextView 2]
[TextView 3]
[TextView 4]
------------------------------------------

And it should be like:
------------------------------------------
[TextView 1] [TextView 2] [TextView 3]
[TextView 4]
------------------------------------------

実際、TableLayoutは必要ありません。私はまだあなたが望むものにそれを変えることができます。もちろん、それらのTextViewがWRAP_CONTENTを幅として取得できるとさらに良いでしょう。

編集:ところで。direction = "horizo​​ntal"のLinearLayoutは、最初のコレットにTextViewsを追加しますが、最後には次の行に折り返さず、右側に追加するだけで、次のように分割されます。

------------------------------------------
[TextView 1] [TextView 2] [TextView 3] [Te
                                       [xt
                                       Vie
                                       w 4
                                       ]
------------------------------------------
4

2 に答える 2

0

私はあなたがそのようなことを試すことができる
と思いTableLayoutます: - 次に幅を取得し、変数 (mWidth) に格納します。 - を作成し、最初に を追加して、その幅を変数 (mTotalWidth) に格納し、行に を配置します。 - 新しい を追加する場合は、それを作成し、その幅を取得して、mTotalWidth に追加するときに合計を計算します。 mTotalWidth < mWidth の場合、現在の行に追加し、新しい を作成して mTotalWidth をインクリメントし、mTotalWidth の値を this の幅に変更します。ActivityFILL_PARENT

TableRowTextViewTextView
Textview

ifTextView
elseTableRowTextviewTextView
次に、すべてのビューに対してこれを繰り返すことができます。これは少し面倒に見えるかもしれませんが、うまくいくと思います。

于 2010-07-28T14:41:10.387 に答える
0

GridViewあなたがやろうとしていることのためにa を使いたいかもしれません。あなたがやりたいことをサポートするレイアウトクラスはないと思います。

を使用する場合は、の作成が既に簡単にサポートされてGridViewいるため、 を使用できるはずです。ArrayAdapterTextView

次の子が現在の行に収まらない場合にラップアラウンドするレイアウトが必要な場合は、それを行うカスタムレイアウトクラスを作成する必要があります。

于 2010-07-28T14:20:40.640 に答える