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

时间:2015-11-27 14:11:46

标签: android android-layout android-networking

我正在尝试在网格视图中放置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" />

2 个答案:

答案 0 :(得分:4)

根据你的问题,我认为以下是你的要求,希望它们符合你真正需要的东西:

  • 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>

上面的布局可能会显示类似于以下屏幕的内容: enter image description here

希望这可能会有所帮助。

<强>线索:
但是,我使用Android Studio创建了这个。如果您使用的是Eclipse,我建议您开始使用Android Studio,因为您刚开始使用Android App Development。

对于Android RelativeLayouts,请阅读以下参考文献:

  1. Relative Layout
  2. 的Android官方文档
  3. An excellently matching Tutorial for your requirement
  4. 你可以通过一次谷歌搜索找到大量的教程。

    建议之词:
    无论您学习Android开发,都要尝试使用最新的材料。

    最诚挚的问候,
    Randika

答案 1 :(得分:0)

您应该使用GridView类。 Here's官方文件和样本