0

Android開発の経験はありますが、単純なタスクで完全に迷っています(少なくとも単純に見えます)。

文字列の ArrayList があり、レイアウト上のリストから文字列からボタンを作成したいと考えています。ボタンである必要はありません。クリック可能なオブジェクト (テキスト付き) であれば何でもかまいません。

主な問題は、それらを次々と作成したいということであり、それらが画面に収まらない場合は、新しい行を作成する必要があります。

通常の線形レイアウトでは、それらを水平に配置できますが、新しい行は作成されません。私もグリッドビューを試しましたが、それはほぼそれです-しかし、それはグリッドであるため、すべての列は同じサイズです(ただし、テキストは異なる可能性があるため、好きではありません)。

これを行う方法はありますか?前もって感謝します。

4

2 に答える 2

1

あなたはこのようなことを試すことができます。

// get the width of the screen
Display display = getWindowManager().getDefaultDisplay();
int windowWidth = display.getWidth();

// keep track of the width of your views on the current row
int cumulativeWidth = 0;

// the width of your new view
int newWidth = // insert some number here based on the length of text.

// get your main layout here
ViewGroup main = (ViewGroup)findViewById(R.id.YOUR_HOLDING_LAYOUT);

// the linear layout holding our views
LinearyLayout linear = null;
// see if we need to create a new row
if (newWidth + cumulativeWidth > windowWidth){
    linear = new LinearLayout(this);
    // set you layout params, like orientation horizontal and width and height. This code may have typos, so double check
    LayoutParams params = new LayoutParams(LinearLayout.FILL_PARENT, LinearLayout.WRAP_CONTENT);
   params.setOrientation(HORIZONTAL); // this line is not correct, you need to look up how to set the orientation to horizontal correctly.
    linear.setParams(params);
    main.addView(linear);
// reset cumulative width
cumulativeWidth = 0;
}

// no create you new button or text using newWidth
View newView = ... // whatever you need to do to create the view

linear.addView(newView);

//keep track of your cumulatinv width
cumulativeWidth += newWidth;
于 2012-05-08T19:14:09.520 に答える
1

Android にはフロー レイアウトはありません。独自のカスタム レイアウト (簡単ではない) を実装するか、サード パーティのフロー レイアウトを見つける必要があります。

于 2012-05-05T00:23:06.533 に答える