0

textView の右側に textview を動的に追加しようとしていますが、 textView が表示されません。

ステートメント「params2.addRule(RelativeLayout.RIGHT_OF, 1);」以下のコードでは、その行を削除すると問題が発生し、テキストビューがランダムな位置に表示されます。

このxmlを動的に実装する必要があります

<TextView
            android:id="@+id/stationnameVal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="KANYAKUMARI (CAPE)"
            android:textColor="@color/black"
            android:textSize="12sp" />

        <TextView
            android:id="@+id/arrivaltimeVal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="45dp"
            android:layout_toRightOf="@+id/stationnameVal"
            android:text="SRC"
            android:textColor="@color/black"
            android:textSize="12sp" />

コードは次のとおりです。

    RelativeLayout rel = new RelativeLayout(this);
    // first TextView
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

        TextView stateName = new TextView(DisplayActivity.this);
        stateName.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));
        params.setMargins(0, 5, 0, 0);
        stateName.setText("KANYAKUMARI (CAPE)");
        stateName.setId(1);
        stateName.setTextColor(R.color.black);
        stateName.setTextSize(12);
        rel.addView(stateName, params);

    // Adding Second TextView
       RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

       TextView arr = new TextView(DisplayActivity.this);
       arr.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));
       arr.setText("SRC");
       arr.setTextColor(R.color.white);
       arr.setTextSize(12);
       params2.addRule(RelativeLayout.ALIGN_PARENT_TOP, stateName.getId());
       params2.addRule(RelativeLayout.RIGHT_OF, 1);
       params2.setMargins(45, 0, 0, 0);
       rel.addView(arr, params2);
4

2 に答える 2

1

「LayoutParams.FILL_PARENT」を「LayoutParams.WRAP_CONTENT」に変更してみてはどうでしょうか。

よろしく

陳子騰

于 2012-08-17T07:32:03.057 に答える
1

これを変える:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

またはこれ:

rel.addView(stateName, params);

rel.addView(stateName);

また、これを変更します。

params2.addRule(RelativeLayout.ALIGN_PARENT_TOP, stateName.getId());

params2.addRule(RelativeLayout.ALIGN_PARENT_TOP);

paramについても同じことを行います:

params.addRule(RelativeLayout.ALIGN_PARENT_TOP);

それ以外の場合は、Kanyakumari と src が適切に配置されていないため、削除してください。

実際にこれを実行してそれらを整列させます:

params2.addRule(RelativeLayout.ALIGN_TOP, 1);
于 2012-08-17T07:34:02.133 に答える