如何在 Android XML 布局文件中放置按钮,就像在网格视图中一样

Sum*_*hik 2 android android-networking android-layout

我正在尝试在网格视图中放置 12 个按钮。这是我的布局XML文件。我该如何使用RelativeLayout来实现这一目标?我是 Android 编程新手。

 <ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
     >
     <LinearLayout 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

    <Button
        android:id="@+id/bAries"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Aries"
        android:drawableTop="@drawable/aries" />

    <Button
        android:id="@+id/bTauras"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Tauras"
        android:drawableTop="@drawable/tauras" />

    <Button
        android:id="@+id/bGemini"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Gemini"
        android:drawableTop="@drawable/gemini" />
Run Code Online (Sandbox Code Playgroud)

Ran*_*man 5

根据您的问题,我假设以下是您的要求,希望它们与您真正需要的一致:

  • 12 个按钮被视为网格
  • 如何使用RelativeLayout

注意:
对于像这样的简单事情,特别是当你知道你只需要有一定数量的元素(12 个按钮)并且该数量是静态的时,你实际上不需要使用像 那样的复杂布局GridView,你必须有实现ListAdapter提供动态添加按钮。因此,您拥有的最简单的解决方案就是正如您所要求的那样,使用RelaiveLayout我在下面提供的。

我尝试了类似以下的操作:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.androxp.randika.main.MainActivity"
    tools:showIn="@layout/activity_main">

<Button
    android:id="@+id/bAquarius"
    android:layout_height="wrap_content"
    android:layout_width="110dp"
    android:layout_marginLeft="5dp"
    android:text="Aquarius"/>
<Button
    android:id="@+id/bPisces"
    android:layout_toRightOf="@+id/bAquarius"
    android:layout_height="wrap_content"
    android:layout_width="115dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight=""
    android:text="Pisces"/>
<Button
    android:id="@+id/bAries"
    android:layout_toRightOf="@+id/bPisces"
    android:layout_height="wrap_content"
    android:layout_width="110dp"
    android:layout_marginRight="5dp"
    android:text="Aries"/>

<Button
    android:id="@+id/bTaurs"
    android:layout_height="wrap_content"
    android:layout_width="110dp"
    android:text="Taurs"
    android:layout_below="@+id/bAquarius"
    android:layout_alignLeft="@+id/bAquarius"
    android:layout_alignStart="@+id/bAquarius" />
<Button
    android:id="@+id/bGemini"
    android:layout_height="wrap_content"
    android:layout_width="115dp"
    android:text="Gemini"
    android:layout_alignTop="@+id/bTaurs"
    android:layout_alignRight="@+id/bPisces"
    android:layout_alignEnd="@+id/bPisces" />
<Button
    android:id="@+id/bCancer"
    android:layout_height="wrap_content"
    android:layout_width="110dp"
    android:text="Cancer"
    android:layout_below="@+id/bAries"
    android:layout_alignRight="@+id/bAries"
    android:layout_alignEnd="@+id/bAries" />

<Button
    android:id="@+id/bLeo"
    android:layout_height="wrap_content"
    android:layout_width="110dp"
    android:text="Leo"
    android:layout_below="@+id/bTaurs"
    android:layout_alignLeft="@+id/bTaurs"
    android:layout_alignStart="@+id/bTaurs"/>

<Button
    android:id="@+id/bVirgo"
    android:layout_height="wrap_content"
    android:layout_width="115dp"
    android:text="Virgo"
    android:layout_alignTop="@+id/bLeo"
    android:layout_alignLeft="@+id/bGemini"
    android:layout_alignStart="@+id/bGemini" />

<Button
    android:id="@+id/bLibra"
    android:layout_height="wrap_content"
    android:layout_width="110dp"
    android:text="Libra"
    android:layout_below="@+id/bCancer"
    android:layout_alignRight="@+id/bCancer"
    android:layout_alignEnd="@+id/bCancer"/>

<Button
    android:id="@+id/bScorpio"
    android:layout_height="wrap_content"
    android:layout_width="110dp"
    android:text="Scorpio"
    android:layout_below="@+id/bLeo"
    android:layout_alignLeft="@+id/bLeo"
    android:layout_alignStart="@+id/bLeo" />

<Button
    android:id="@+id/bSagittarius"
    android:layout_height="wrap_content"
    android:layout_width="115dp"
    android:text="Sagittarius"
    android:layout_below="@+id/bVirgo"
    android:layout_toLeftOf="@+id/bAries"
    android:layout_toStartOf="@+id/bAries" />

<Button
    android:id="@+id/bCapricorn"
    android:layout_height="wrap_content"
    android:layout_width="110dp"
    android:text="Capricorn"
    android:layout_below="@+id/bLibra"
    android:layout_alignRight="@+id/bLibra"
    android:layout_alignEnd="@+id/bLibra"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

上面的布局可能会呈现类似于以下屏幕的内容: 在此输入图像描述

线索:
但是,我使用 Android Studio 创建了这个。如果您使用 Eclipse,我建议您开始使用 Android Studio,因为您刚刚开始 Android 应用程序开发。

对于Android RelativeLayouts,请阅读以下参考资料:

  1. Android相对布局官方文档
  2. 非常适合您的要求的教程

只需在 Google 上搜索一下,您就可以找到大量用于此目的的教程。

建议:
无论您学习 Android 开发经历了什么,请尝试使用最新的材料。