2017-06-07 8 views
-1

私は、列ごとにテキストビューを追加したいアプリケーションを開発しています。ほぼ3つのテキストビューが画面の横幅を埋めることができます。追加するテキストビューが4つ以上ある場合は、新しい行を次の行に追加するなどの方法があります。リニアレイアウトのテキストビューに追加の制約を動的に追加するにはどうすればよいですか?

below-図を参照してください---第一---------------第二--------------第三

- -4th ---------------- 5th -----など

異なる方向パラメータを持つネストされた線形レイアウトを使用する必要があることはわかっています。しかし、どのように私はこの "最大3 textviews行ごとの制約"を回避しますか?私はこれが重量のパラメータで何かをしなければならないことを知っています。私がこれまでにIS-書かれているコード

LinearLayout out = (LinearLayout) findViewById(R.id.linear_params); 
TextView mView = new TextView(this); 
mView.setText("placeholder"); 
mView.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT)); 
out.addView(mView); 

とレイアウトのために、私は動的にビューを配置することができていますように、私は上記のXMLとコードを変更する必要がありますどのように

<LinearLayout 
    android:id="@+id/out 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_margin="5dp"> 

    <LinearLayout 
    android:id="@+id/in 
    android:layout_width="match_parent" 
    android:layout_height="10dp" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="5dp" 
    android:orientation="horizontal"> 
    <TextView ... /> 
    </LinearLayout> 
    </LinearLayout> 

written-ています要求に応じ ?

+0

列数を3に設定してgridviewを使用するか、画面のサイズを動的に計算し、3(各テキストビューの幅)に分割し、表示する合計テキストビューの線形レイアウトを3で割って作成します。各線形レイアウトの子として計算された幅の3つのテキストビューを追加します。 – khetanrajesh

答えて

0

これを行う正しい方法は、3つの列を持つGridViewコンポーネントを使用することです。ビューを追加することもできます。

LinearLayoutを使用する場合は、ウェイトを使用して行ごとに新しいLinearLayoutを追加する必要があります。これは、計算とオーバードローにも多くの処理が必要になります。

GridViewを使用すると、すべての行とすべてのビューを計算して追加するコードを書くのを避けることができ、レイアウトも最適化された状態に保ちます。

関連する問題