-3

Gravity プロパティを XML 項目に適用した後、適切な場所に配置されていないようです。次の条件が満たされるように、これらの問題をどのように修正できますか?

  1. 「上に移動」ボタンは画面の上部にある必要があります
  2. 「下に移動」ボタンは画面の下部にある必要があります
  3. 画面のGridView垂直中央にある必要があります

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <Button
        android:id="@+id/btn_moveup"
        android:text="move up"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_gravity="top"
        />

    <GridView
        android:id="@+id/abslistview_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:numColumns="auto_fit"
        />

    <Button
        android:id="@+id/btn_movedown"
        android:text="move down"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_gravity="bottom"
        />
</LinearLayout>

更新 (akshay_shahane の提案)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:layout_gravity="center_vertical"
    android:orientation="vertical"
    android:weightSum="100"
    tools:context=".MainActivity">
    <Button
        android:id="@+id/btn_moveup"
        android:text="move up"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_weight="5"
        android:onClick="moveup_click"
        />

    <GridView
        android:id="@+id/abslistview_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="90"
        android:layout_gravity="center_vertical"
        android:numColumns="auto_fit"
        />

    <Button
        android:id="@+id/btn_movedown"
        android:text="move down"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_weight="5"
        android:onClick="movedown_click"
        />
</LinearLayout>

ここに画像の説明を入力

4

3 に答える 3

0

このようにの重みGridLayoutを 1 とlayout_height0dp に設定します。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <Button
        android:id="@+id/btn_moveup"
        android:text="move up"
        android:layout_height="wrap_content"
        android:layout_width="match_parent" />

    <GridView
        android:id="@+id/abslistview_main"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:numColumns="auto_fit"
        android:layout_weight="1"
        />

    <Button
        android:id="@+id/btn_movedown"
        android:text="move down"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        />
</LinearLayout>

または、このようにグリッド レイアウトを別のコンテナーにラップします。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <Button
        android:id="@+id/btn_moveup"
        android:text="move up"
        android:layout_height="wrap_content"
        android:layout_width="match_parent" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <GridView
            android:id="@+id/abslistview_main"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:numColumns="auto_fit" />

    </LinearLayout>

    <Button
        android:id="@+id/btn_movedown"
        android:text="move down"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        />
</LinearLayout>

GridLayoutを使用して を中央に配置できるため、2 番目のオプションの方が適していますandroid:layout_gravity="center"

于 2017-10-04T09:44:06.127 に答える