2

ここに画像の説明を入力

この例では、ブロック #4 と #6 は、現在の行に十分なスペースがないため、次の行に移動されます。「display: block; float: left;」のような CSS プロパティを持つ HTML の block 要素と基本的に同じ動作です。このように画面に画像を配置したい状況を考えてみましょう。これを実装する方法は?

4

3 に答える 3

2

GridLayout最も近くなりますが、子のサイズを同じサイズに変更するため、表示した例の画像では機能しません。画像/ボタンなどの一貫したグリッドについて話しているだけなら、それは完璧です.

もう 1 つは、サード パーティのソリューションであるFlowLayoutです。

に基づいているLinearLayoutため、水平方向に設定して、好きな要素をすべて追加するだけです。必要なタイミングで次の行に流れ、お客様自身で測定/調整を行う必要はありません。

注: これはしばらくテストしていないため、最新の API でどのように動作するかはわかりません。最後に使用したのは Gingerbread アプリで、その時点では問題なく動作していました。

于 2013-08-06T14:02:10.877 に答える
1

これをシミュレートするにRelativeLayoutは、属性を使用して使用します。android:layout_toRightOf

Viewラップアラウンド動作に関しては、子のクラスを拡張する必要がある場合があります。特に、それが前の要素またはその前の要素onLayoutであるかどうかをプログラムで切り替える関数を拡張する必要があります。theRightOfbelow

たぶん、このようなもの、psedo

protected void onLayout (boolean changed, int left, int top, int right, int bottom) {
   if (right < 0) {
       # toggle to below and maybe parent left
   }
于 2013-08-06T12:57:37.647 に答える