使用自定义View实例在运行时填充XML视图

时间:2011-06-12 22:10:28

标签: android layout view widget

我有一个我在运行时定义的自定义视图。我不希望它填满屏幕,我希望它在一个用XML定义的更大的布局中。

这是我想用伪代码做的事情:

View newView = new MyCustomView();
View.replace(newView , R.id.old_view);

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

我建议在上面的评论中使用ViewStub,但我认为这可能有点矫枉过正。你可以试试这个:

package com.example.viewstub;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

public class ViewStubTestActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView old_textview = (TextView )this.findViewById(R.id.textView1);
        old_textview.setVisibility(View.INVISIBLE);

        TextView tv = new TextView(this.getApplicationContext());
        tv.setText("new Text!!!");

        LinearLayout ll = (LinearLayout)this.findViewById(R.id.linearLayout_1);
        ll.addView(tv);
    }
}

它只是引用顶层布局,添加新组件并删除旧组件。我认为应该这样做。

CASP