Android 动态创建布局

Android 动态创建布局,android,android-layout,Android,Android Layout,我在谷歌上搜索了好几个小时,但找不到解决方案。。。我发现了许多类似的问题和答案,但没有一个对我有用 我想做的是: 我有一个用于绘制应用程序的视图。 现在我想在当前画布的“顶部”添加一个布局。布局应包含一个按钮,每侧边距为20像素。我发现了一个类似于以下代码的代码片段,但屏幕上什么也没发生。没有按钮。没什么 这是我正在使用的代码: LinearLayout bottomBar = new LinearLayout(this); bottomBar.setOrientation(LinearLayo

我在谷歌上搜索了好几个小时,但找不到解决方案。。。我发现了许多类似的问题和答案,但没有一个对我有用

我想做的是: 我有一个用于绘制应用程序的视图。 现在我想在当前画布的“顶部”添加一个布局。布局应包含一个按钮,每侧边距为20像素。我发现了一个类似于以下代码的代码片段,但屏幕上什么也没发生。没有按钮。没什么

这是我正在使用的代码:

LinearLayout bottomBar = new LinearLayout(this);
bottomBar.setOrientation(LinearLayout.VERTICAL);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(20, 20, 20, 20);

Button button = new Button(this);
button.setText("text");
bottomBar.addView(button, layoutParams);
bottomBar.draw(canvas);

我做错了什么?

您没有为线性布局提供宽度/高度,也没有将其附加到视图。

您创建布局的事实
LinearLayout bottomBar=新的线性布局(此)并不意味着它已连接到屏幕

另外,不要在你的吧台上叫draw。在您将其包括在屏幕中后,系统将为您呼叫

例如,假设您的XML(使用setContentView扩展)有一个ID为R.ID.frame的FrameLayout,那么您可以这样做:

LinearLayout bottomBar = new LinearLayout(this);
bottomBar.setOrientation(LinearLayout.VERTICAL);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(20, 20, 20, 20);

Button button = new Button(this);
button.setText("text");
bottomBar.addView(button, layoutParams);

FrameLayout frame = (FrameLayout) findViewById(R.id.frame);
frame.addView(bottomBar);
你看。。。您必须在屏幕上已经存在的视图组中调用“addView”


或者,您可以调用:
setContentView(底部栏)
底部栏替换屏幕上的任何内容

我可能错了,但您在屏幕上的何处加载此布局?像
setContentView
?setContentView用于我的视图(在此代码段中不可见)。为了使布局可见,我在最后使用了draw方法。如何将其附加到视图?我只能将视图附加到布局上,这不是我想要的。嗯,我想我知道我必须做什么,所以我会接受它作为答案。谢谢