2

レイアウトに関する問題。

ビューを動的に追加したい。

論理コード:

    linear1 = (LinearLayout) findViewById(R.id.parent);
    linear2 = (LinearLayout) findViewById(R.id.chiled);

    int len = 4;

    for (int i = 1; i <= len; i++) {
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);

        LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);

        params1.gravity = Gravity.RIGHT;

        final int id_txt;
        ImageView iv = new ImageView(this);
        iv.setId(i);
        id_txt = iv.getId();
        iv.setBackgroundResource(R.drawable.ic_launcher);
        linear1.addView(iv, params);
        iv = ((ImageView) findViewById(id_txt));

        for (int j = 1; j < 2; j++) {
            final int id_;
            Button btn = new Button(this);
            btn.setId(i);
            id_ = btn.getId();
            btn.setText("button " + id_);
            linear2.addView(btn, params1);
            btn = ((Button) findViewById(id_));

            btn.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    Toast.makeText(v.getContext(),
                            "Button clicked index = " + id_,
                            Toast.LENGTH_SHORT).show();
                }
            });
        }
        // btn.setBackgroundColor(Color.rgb(70, 80, 90));

        // linear1.addView(txt, params);

        // params.addRule(RelativeLayout.RIGHT_OF, txt.getId());

        iv.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Toast.makeText(view.getContext(),
                        "text clicked index = " + id_txt,
                        Toast.LENGTH_SHORT).show();
            }
        });
              }
    }

Xml コード:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/parent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/chiled"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

親ビューに画像を追加し、子ビューに2つのボタンを動的に追加したい。

このタイプのビューフォームを作成するように促します

ピンタレストのようなAndroid異種グリッドビュー?

次のようになるはずです

ここに画像の説明を入力

現在の出力として

ここに画像の説明を入力

どこに問題があるのか​​わからない。

コードにレイアウトが表示されている場合、エディターで現在直面している奇妙な問題の1つが表示され、アウトラインで表示されている場合は、各レイアウトが表示されます。どのように可能ですか?android:orientation="vertical"android:orientation="horizontal"

解決するのを手伝ってください。ありがとう

4

2 に答える 2

0

水平LinearLayout chiledは垂直の最初の子であるためLinearLayout parent、最初のアイテムとして配置されます。そのため、ビューを追加すると、それらが一番​​上に配置されます。

chiledレイアウトをルートに移動してみてくださいLinearLayout root

于 2012-12-11T11:20:27.770 に答える