6

私は Android アクティビティを表示しようとしています:

  • ダイアログテーマ;
  • ダイアログの上部に固定されたタイトル。
  • ダイアログの下部に固定されたボタン バー。
  • 真ん中のスクロールビュー。

私が作成したレイアウトは、ダイアログが常に全画面を占めることを除いて、これらの基準を満たしています (下部の垂直スクリーンショットを参照)。

これは私のレイアウトです:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content">

    <TextView android:id="@+id/header"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_marginLeft="10dp" android:layout_marginRight="10dp"
    android:layout_marginTop="10dp" android:layout_marginBottom="10dp"
    android:gravity="center_vertical"
        android:textSize="18dip" android:textColor="#ffffff"
        android:text="Sample Layout" />

    <LinearLayout android:id="@+id/controls" android:orientation="horizontal"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    style="@android:style/ButtonBar">
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_weight="1" android:text="Yes" />
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_weight="1" android:text="No" />
    </LinearLayout>

    <ScrollView android:id="@+id/test" android:layout_below="@id/header"
    android:layout_above="@id/controls"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_marginBottom="5dp" android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp">
        <TextView android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:text="Lorem ipsum dolor sit amet, consectetur
        adipiscing elit. Integer dui odio, convallis vitae suscipit eu,
        tincidunt non mi. Vestibulum faucibus pretium purus vel adipiscing.
        Morbi mattis molestie risus vitae vehicula. [...]" />
    </ScrollView>

</RelativeLayout>

さらに、アクティビティは および でスタイル設定され@android:style/Theme.Dialogますandroid:windowNoTitle

このレイアウトが拡大して画面全体に表示される理由がよくわかりません。レイアウトの高さが に設定されているビューはありませんfill_parent。親レイアウトはfill_parentどちらにも設定されていません。

私がやりたいことが可能かどうか、また可能であればどうすればよいか誰かが知っていますか?

水平モードでの現在のレイアウト

水平モードでのレイアウト。

垂直モードでの現在のレイアウト

垂直モードでのレイアウト。

4

2 に答える 2

13

あなたのアクティビティに非常によく似たアクティビティがあります。しばらく前にやったので、なぜこれをやったのかよく覚えていませんが、あなたがやろうとしていることは達成できたと思います. これが私のコードです:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/info_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_gravity="bottom"
android:background="@color/color2">

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/color1">

    <TextView
        android:id="@+id/infos_titre"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="12dip"
        android:textSize="20dip"
        android:textColor="@color/color2"
        android:gravity="center"
        android:background="@color/color1">
    </TextView>

</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:id="@+id/infos_LL"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:gravity="center_vertical">

            <TextView
                android:id="@+id/infos_text"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textSize="16dip"
                android:padding="4dip"
                android:textColor="@color/color1"
                android:lineSpacingMultiplier="1.1"
                android:autoLink="web">
            </TextView>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/color1"
    android:paddingTop="6dip">

    <Button
        android:id="@+id/infos_remarquebutton"
        android:text="Faire une remarque"
        android:drawableLeft="@drawable/happy"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:textColor="@color/buttontext_color">
    </Button>
    <Button
        android:id="@+id/infos_partagerbutton"
        android:text="Partager"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/ic_menu_share"
        android:layout_weight="1"
        android:textColor="@color/buttontext_color">
    </Button>
</LinearLayout>

フランス語のネーミングに惑わされないでください...

したがって、主なトリックは、ScrollView を LinearLayoutに配置することだったと思います。また、その LinearLayout に 1 の重みを付けました (理由は覚えていません...)。また、一番上のレイアウトは LinearLayout であり、コードのように Relative Layout ではありませんが、RelativeLayouts に慣れていませんが、何も変わらないと思います。

それが役に立てば幸い!

于 2011-03-15T11:34:48.707 に答える
0

Linear Layout に android:layout_alignParentBottom="true" を指定したため、ボタンが下に移動し、次のようになります。

android:layout_alignParentBottom="true" を削除して android:layout_marginTop="some Values" を使用することをお勧めします

これを試してください..ありがとう..

于 2011-03-11T14:35:54.573 に答える