0

私はこのコードのビットで苦労しています:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    RelativeLayout layout = (RelativeLayout)findViewById(R.id.RelativeLayout1);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

私は次のようなxmlにRelativeLayout1を持っています:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingLeft="60dp"
    android:paddingTop="53dp" >

しかし、scrollviewを適用すると、RelativeLayout1のfill_parentは、scrollviewの子でない場合は正常に機能しません。子ではない場合(つまり、scrollviewを完全に削除した場合)、相対レイアウトは画面全体を好きなようにカバーします。しかし、scrollview内に配置すると、fill_parentを使用しても、relativelayout内の最後の要素(ボタン)にしか到達しません。

だから私はそれが違いを生むかどうかをプログラムで試していますが、コードの最初のビットでparams変数をレイアウトに適用する方法を理解できないようです。他にご意見がございましたら、お知らせください。

4

3 に答える 3

1

setterメソッドを呼び出すのを忘れましたlayout.setLayoutParams(params)。作成したパラメータを適用するには、それらを実際のレイアウトに与える必要があります。

親がScrollViewである場合は、fill_parentの使用に注意してください。スクロールビューはそのサイズを子に適応させます。

于 2012-07-31T13:19:25.563 に答える
0

スクロールビューにフィールドを追加し、プログラムでこれを行わないことで、問題を解決する方法を見つけました。ScrollViewで、次のように設定する必要がありました。

android:fillViewport="true"
于 2012-07-31T13:21:20.180 に答える
0

RelativeLayoutでScrollViewをいっぱいにする場合は、属性android:fillViewport="true"をScrollViewに追加します。

ここで同じことについてのRomainGuyの投稿を参照してください:ScrollViewの便利なトリック

于 2012-07-31T13:22:09.603 に答える