0

私は非常に単純なことをしたいと思っています。上部にスピナーがあり、その後にリスト ビューが続き、最後にいくつかのボタンをラップする最下部にリニア レイアウトが続くレイアウトが必要です。ウィンドウの大きさに関係なく、リスト ビューを拡大してスピナーとボタンの間のスペースを埋めるようにします。私は3つの要素すべてをラップする線形レイアウトでこれを試してきました。私が考えることができるLayout_HeightのWrap ContentとFill Parentのすべての組み合わせを試しましたが、List View Layout_Heightを300ディップと言うようにハードコーディングしない限り、ボタンが押されます画面から。これを行う簡単な方法があるに違いないことは知っていますが、私は頭が痛いです。考えられることはすべて試しました。

ハードコーディングされた高さで動作するコードは次のとおりです。

<?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="vertical" >

<Spinner
    android:id="@+id/fileType"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

<ListView
    android:id="@+id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="300dip" />

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="bottom"
    android:gravity="bottom"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/ManageFiles_DeleteItem"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="5dip"
            android:layout_weight="1"
            android:text="Delete item" />

        <Button
            android:id="@+id/ManageFiles_DeleteAll"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="5dip"
            android:layout_weight="1"
            android:text="Delete all" />

        <Button
            android:id="@+id/ManageFiles_DisplayItem"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="5dip"
            android:layout_weight="1"
            android:text="Display item" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/ManageFiles_OKcustom"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="10dip"
            android:layout_weight="1"
            android:text="OK" />

        <Button
            android:id="@+id/ManageFiles_CancelCustom"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="10dip"
            android:layout_weight="1"
            android:text="Cancel" />
    </LinearLayout>
</LinearLayout>

`

4

4 に答える 4

1

次のような簡単なことを試すことができます

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@id/spinner1"
    android:layout_above="@+id/button1" >
</ListView>

<Button
    android:id="@id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:text="Button1" />

<Button
    android:id="@id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:text="Button2" />

秘訣は、LinearLayout の代わりに RelativeLayout を使用することです。

于 2013-03-27T04:37:07.720 に答える
0

以下を使用

android:weightSum="Your total length" //in your main layout

android:layout_weight="" //in each of your listview,spinner,linearlayout

例: 3 つの要素すべてに等しいスペースが必要な場合は、

android:weightSum="3"

次に

Spinner
android:layout_weight="1"
/>

ListView
android:layout_weight="1"
/>

LinearLayout
android:layout_weight="1"
/>
于 2013-03-27T04:23:09.253 に答える
0

ウェイトを使用し、リスト ビューに 2 つ、ボタンを含む下部のスピナーとレイアウトにそれぞれ 1 つのウェイトを与えてから、ウェイトを変更して、どちらがより適しているかを確認できます。

于 2013-03-27T04:31:53.040 に答える
0

このようにして、すべての画面サイズに収まるようにしてください。

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

<LinearLayout
    android:id="@+id/ftr_btn"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:gravity="bottom"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/ManageFiles_DeleteItem"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="5dip"
            android:layout_weight="1"
            android:text="Delete item" />

        <Button
            android:id="@+id/ManageFiles_DeleteAll"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="5dip"
            android:layout_weight="1"
            android:text="Delete all" />

        <Button
            android:id="@+id/ManageFiles_DisplayItem"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="5dip"
            android:layout_weight="1"
            android:text="Display item" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/ManageFiles_OKcustom"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="10dip"
            android:layout_weight="1"
            android:text="OK" />

        <Button
            android:id="@+id/ManageFiles_CancelCustom"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_margin="10dip"
            android:layout_weight="1"
            android:text="Cancel" />
    </LinearLayout>
</LinearLayout>

<Spinner
    android:id="@+id/fileType"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" />

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/ftr_btn"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/fileType" >
</ListView>

于 2013-03-27T05:26:50.137 に答える