Android如何以水平方向更线性布局全屏

标签 android android-linearlayout

我正在尝试上学,我使用多个线性布局来表示天和小时。 使用layout_weight,我可以为单个LinearLayout内的每个元素设置空间。 但我的问题是如何为 LinearLayout 设置 layout_weight 因为它们设置为水平方向并且不占据整个屏幕。 它就像一个表格,但我使用 LinearLayout 因为我只需要创建行。

这是 Activity 的 xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.ddz.diarioscolastico.OrarioActivityProva">

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/linearLayout">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_weight="2"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Lun"
        android:id="@+id/textView2"
       />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Mar"
        android:id="@+id/textView" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Mer"
        android:id="@+id/textView3" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Gio"
        android:id="@+id/textView4" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Ven"
        android:id="@+id/textView5" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Sab"
        android:id="@+id/textView6" />
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:layout_below="@+id/linearLayout"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/linearLayout2">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="1"
        android:id="@+id/textView7" />
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/linearLayout2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/linearLayout3">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="2"
        android:id="@+id/textView8" />

</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/linearLayout3"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/linearLayout4">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="3"
        android:id="@+id/textView9" />
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/linearLayout4"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/linearLayout6">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="4"
            android:id="@+id/textView10" />
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/linearLayout6"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/linearLayout5">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="5"
        android:id="@+id/textView11" />
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/linearLayout5"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/linearLayout7">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="6"
        android:id="@+id/textView12" />
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/linearLayout7"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:id="@+id/linearLayout8">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="7"
        android:id="@+id/textView13" />
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/linearLayout8"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="8"
        android:id="@+id/textView14" />
</LinearLayout>

正如你所看到的,如果我设置了 android:layout_height="match_parent" 是的,所有 LinearLayout 都采用全屏,但只有第一个可见,我想分割屏幕对于所有人。

最佳答案

使用布局权重是一项有点棘手的任务。 假设您想水平显示三个按钮,它们在线性布局中共享相同的宽度。那么xml代码应该是这样的。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="3"
    android:orientation="horizontal" >
    <Button 
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:text="Button 1"
        />
    <Button 
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:text="Button 1"
        />
    <Button 
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:text="Button 1"
        />

</LinearLayout>

正如你所看到的,在父 LinearLayout 中,我使用 WeightSum 作为 3,在每个子按钮中,我将宽度设置为 0dp,权重设置为 1,并且有三个按钮,因此它将共享相同的宽度。

顺便说一句,根父级(RelativeLayout)在您给定的布局中并未关闭。

编辑:2

正如您所说,这里的代码将每个 LinearLayout 与layout_weight 均等

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

    <LinearLayout 
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:background="#00FF00"
        >

    </LinearLayout>
    <LinearLayout 
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:background="#FF0000"
        >

    </LinearLayout>
    <LinearLayout 
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:background="#0000FF"
        >

    </LinearLayout>

</LinearLayout>

输出: OutPut

关于Android如何以水平方向更线性布局全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28702224/

相关文章:

android - 重用或重新创建观察者?

android - 如何从 android 中膨胀的多个 LinerLayouts 中获取 Editexts 的值?

Android - 没有滚动条的滚动

android - android水平均匀地放置空间按钮

java - 如何让 android 只用一只耳朵发出哔哔声?

android - 如何在 android 中水平添加 2 个按钮,每个按钮的宽度为 50%?

android - 在 Android 中根据 QRScan 结果执行新 Activity

android - 拍照后 Activity 不会关闭 Android

android - 如何知道一行中可以放置多少个字符?

android - ListView 中的线性布局