Java 为什么在使用setLayoutParams时不显示FrameLayout?

Java 为什么在使用setLayoutParams时不显示FrameLayout?,java,android,Java,Android,我试图使用FrameLayout将一个视图置于表中另一个视图的上方(每行2个框架布局),但我需要向其中添加一些参数(边距、宽度和高度)。问题是,向其中添加参数会阻止它显示。 例如,我只在其中放了一个视图,但这只是因为我试图简化它,以便发布它 使用示例中的代码时,它不会显示FrameLayout,但如果我删除FrameLayout.setLayoutParams(frameParams)行,我无法选择它的大小和边距大小 TableRow row = new TableRow(this);

我试图使用FrameLayout将一个视图置于表中另一个视图的上方(每行2个框架布局),但我需要向其中添加一些参数(边距、宽度和高度)。问题是,向其中添加参数会阻止它显示。 例如,我只在其中放了一个视图,但这只是因为我试图简化它,以便发布它

使用示例中的代码时,它不会显示FrameLayout,但如果我删除
FrameLayout.setLayoutParams(frameParams)行,我无法选择它的大小和边距大小

TableRow row = new TableRow(this);
        row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT));
        FrameLayout frameLayout = new FrameLayout(this);
        Button button = new Button(this);
        button.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);
        button.setHeight(LinearLayout.LayoutParams.MATCH_PARENT);
        button.setText("Button2");
        FrameLayout.LayoutParams frameParams = new FrameLayout.LayoutParams(200,100);
        frameParams.setMargins(5,5,5,5);
        frameLayout.setLayoutParams(frameParams);
        frameLayout.addView(button);
        row.addView(frameLayout);
        tableLayout.addView(row);

我如何解决这个问题,或者是否应该使用其他类型的布局/容器来代替FrameLayout?

FrameLayout在TabbleRow中,因此您应该使用

TabbleRow.LayoutParams frameParams = new TabbleRow.LayoutParams(200,100);

它不会更改按钮和页边距的大小(即使我使用了setMargins),您也应该使用Framelayout.LayouParams为按钮设置布局参数