0

我有一个问题,当我在宽度和高度 = fill_parent 的活动上设置布局 xml 文件并将背景颜色设置为灰色时,我在启动活动时没有得到任何背景颜色。我尝试创建一个扩展 LinearLayout 的自定义布局,当我在这个自定义布局中调用 onMeasure 时,我得到了

测量:-2147483048 | -2147482761

其中水平空间要求:-2147483048 和垂直空间要求:-2147482761

所以,当我使用

setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT));

对于我的自定义布局,我什么也得不到,但是当我使用例如

setLayoutParams(new LayoutParams(50,
            50));

然后我得到一个矩形

我的问题是,为什么?

编辑:在真机和模拟器上测试

EDIT2:xml:

android:layout_width="fill_parent"
android:layout_height="fill_parent"

EDIT3:Java:

onCreate:
        setContentView(new CustomAlarmLayout(this));

或者

onCreate:
setContentView(R.layout.some_layout);

EDIT4:数量等于 MeasureSpec.AT_MOST

尝试将其设置为 MeasureSpec.UNSPECIFIED 不会改变任何内容,调用 onMeasure 时视图仍然不会调整大小

EDIT5:我的错。问题是 TabWidget 公共区域上有一个 wrap_content 集,所以这就是为什么我的 fill_parent 不起作用

4

2 回答 2

0

你确定吗??您必须在布局 xml 或活动中做错了什么。

尝试使用以下布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" 
    android:background="#FF0000">
</LinearLayout>

你应该得到一个红色的背景

于 2012-09-25T10:33:11.153 回答
0

我了解您想在运行代码中插入此布局(及其设置)...为什么不尝试在此活动的 .xml 文件中包含默认的相对或线性布局设置参数宽度和高度作为 MATCH_PARENT 或FILL_PARENT。在此之后,通过运行代码将您的线性布局插入到 .xml 布局中。

像这样的东西:

myGenericLayout = (LinearLayout) findViewById(R.id.layout);
myGenericLayout.addView ( "your layout with the setting that you want here" );
于 2012-09-25T10:38:18.033 回答