当前位置: 首页 > 知识库问答 >
问题:

为什么未显示以编程方式创建的线性布局

淳于禄
2023-03-14

我试图以编程方式创建一个LinearLayout,但由于某种原因,它没有显示,我在Logcat或Run终端中没有错误。

以下是我的Java代码:

public class MainActivity extends AppCompatActivity {
    String [] arr = {"1","2","3"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final LinearLayout parent = findViewById(R.id.rootLayout);
        LinearLayout child;

        for(int i = 0; i < arr.length; i++) {
            child = new LinearLayout(this);
            child.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
            child.setOrientation(LinearLayout.VERTICAL);
            child.setBackgroundColor(Color.YELLOW);
            parent.addView(child);
        }

    }
} 

和我的XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rootLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
</LinearLayout>

我试图实现的是有3线性布局创建根据数组长度,因为我将通过一些TextViews给他们以后

我试图遵循我找到的答案,用多个视图以编程/动态方式创建LinearLayout,但仍然看不到在模拟器上创建的LinearLayout。

下面是它的显示方式:模拟器预览

我不确定我做错了什么?

感谢您的提示和帮助。

共有1个答案

孔飞翔
2023-03-14

使用了以下选项,解决了此问题:

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.height = 150;
 类似资料:
  • 我在通用应用程序的底部显示一个视图,并在视图中动态添加该视图。我希望每次都能像iAd一样在底部显示这个视图。在两个方向上。如何为此添加约束。请建议。 谢谢

  • 我在尝试完全以编程方式进行此布局时遇到了问题,每次进程运行结束时都没有成功,应用程序崩溃。 XML im试图以编程方式创建的部分是: 我试图用以下kotlin代码重新创建它: 这就是我在logcat中遇到的错误 我仍在研究它可能是什么,我怀疑它可能是错误的LayoutParams,但如何以编程方式正确设置这些资源还不是很清楚。 提前谢谢。 PD:如果我发现了什么,我会更新。 欢迎任何帮助! 更新1

  • 我已经在这里看了这个问题,但是我仍然找不到我做错了什么。Logcat中没有错误,并且肯定有数据被传递给它进行制作。这是我的设置: 这一切都发生在我在Android Studio中手动放置的元素下面。我有一个滚动视图。在这个滚动视图中,我有一个LinearLayout,即parentLayout,它被传递给这个类。此方法应添加另一个水平线性布局,

  • 问题内容: 我一直在尝试以编程方式重做我的应用程序上的工作。(不使用情节提要) 除了手动制作导航控制器外,我几乎完成了。 我一直在做一些研究,但找不到任何手动实现此方法的文档。(我开始将应用程序制作为单视图应用程序) 目前,我只有1个ViewController。当然是appDelegate 导航控制器将在应用程序的所有页面中使用。 如果有人可以帮助我,或发送指向一些适当文档的链接以编程方式进行此

  • 我在一个框架布局中有两个线性布局。 这里,我将id为的线性布局的设置为10dp,但在代码中,我想将这个10dp更改为50dp,在某些条件下,如何以编程方式更改这个top margine?

  • 我用一些按钮以编程方式创建AlertDialog的LinearLayout。 我想这样做: 但对于这样的代码: 如何以编程方式设置按钮的样式(使用按钮栏)?