动态添加的视图未显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态添加的视图未显示相关的知识,希望对你有一定的参考价值。
在我的主要活动中,我调用以下内容来显示一个新活动:
Intent intent = new Intent( MainActivity.this, FindActivity.class );
startActivity( intent );
这会在我的onCreate()
中调用我的FindActivity
代码,如下所示:
@Override
protected void onCreate( Bundle savedInstanceState )
{
Utils.LogDebugf( "FindActivity:: onCreate()
" );
super.onCreate( savedInstanceState );
mActivity = this;
mBaseLinearLayout = new LinearLayout( mActivity );
mBaseLinearLayout.setLayoutParams( new LinearLayout.LayoutParams( ContextActivity.screenWidth, ContextActivity.screenHeight ) );
mBaseLinearLayout.setOrientation( LinearLayout.VERTICAL );
mBaseLinearLayout.setBackgroundColor( Color.TRANSPARENT );
mEditText = new EditText( mActivity );
mEditText.setWidth( ContextActivity.screenWidth );
mEditText.setHeight( mResultLabelHeight );
mEditText.setBackgroundColor( Color.DKGRAY );
mEditText.setGravity( Gravity.CENTER );
mEditText.setText( "" );
mEditText.setTextColor( Color.YELLOW );
mEditText.setTextSize( 30 );
mEditText.setSingleLine();
mEditText.setLayoutParams( new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT ) );
mEditText.setOnClickListener( buttonListener );
mEditText.addTextChangedListener( mTextWatcher );
mListView = new ListView( mActivity );
mListView.setBackgroundColor( Color.WHITE );
mListView.setLayoutParams( new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1 ) );
mBaseLinearLayout.addView( mEditText );
mBaseLinearLayout.addView( mListView );
}
我的活动声明如下:
public class FindActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks<Cursor>, ListChooserDialogListener
{
我遇到的问题是没有我的观点/控件出现。我有一个黑色的场景。我错过了什么?
答案
即使您没有为Activity
的内容使用XML布局,您仍然需要调用setContentView()
来动态创建View
s以附加到Activity
。例如:
setContentView(mBaseLinearLayout);
只要确保在那里传递根View
,否则你会得到一个IllegalStateException
。
以上是关于动态添加的视图未显示的主要内容,如果未能解决你的问题,请参考以下文章
使用 WindowManager.addView 添加动态视图