2

このXMLファイルを使用すると...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000"

tools:context=".MainActivity" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"        
    android:text="@string/hello_world" />

</RelativeLayout>

..背景色のラップ コンテンツが表示されます

http://img716.imageshack.us/img716/8225/rlayout.jpg

しかし、この RelativeLayout をコードで書くと...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    RelativeLayout layout = new RelativeLayout(this);

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


    layout.setBackgroundColor(Color.parseColor("#FF0000"));

    TextView text = new TextView(this);
    text.setText("Hello world");

    //Añado texto
    layout.addView(text);

    layout.setLayoutParams(params);

    setContentView(layout); 
}

...背景色がコンテンツをラップする代わりに親に一致することがわかります

http://img404.imageshack.us/img404/1427/rlayoutfull.jpg

何か案は?

ありがとう!

4

1 に答える 1

2

あなたは決してレイアウトパラメータを設定していません:

layout.setLayoutParams(params);

そして、次のものを配置する必要があると思います:

TextView text = new TextView(this);
text.setText("Hello world");

レイアウトパラメータを設定する前に、レイアウトに追加する他のすべてのビュー。そうしないと、ラップアラウンドするコンテンツがありません。

編集:

設定するとどうなりますか:

tried to replace between the two:

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

?

于 2013-03-23T22:40:19.273 に答える