0

width & height = fill_parent を使用してアクティビティにレイアウト xml ファイルを設定し、背景色を灰色などに設定すると、アクティビティを開始したときに背景色が表示されないという問題があります。LinearLayout を拡張するカスタム レイアウトを作成しようとしましたが、このカスタム レイアウトで onMeasure を呼び出すと、

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 のそのレイアウト内に runco​​de で linearlayout を挿入します。

そんな感じ:

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