【问题标题】:center 5 items packed in linear layout中心 5 个项目以线性布局包装
【发布时间】:2019-12-02 01:07:25
【问题描述】:

我有 5 件物品。

我想将它们全部水平居中,并让它们彼此打包。

我知道在约束布局中我会创建一个水平链和app:layout_constraintHorizontal_chainStyle=”packed”

但是可以使用LinearLayout 吗?怎么样?

这是我的尝试:

<?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_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    tools:context=".MainActivity"
    android:layout_gravity="center"
    tools:showIn="@layout/activity_main">


  <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="AAAAAAAAAAAAAAAAAAAAAAA" />

  <TextView
      android:id="@+id/textView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="DOT" />

  <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"



      android:text="BBB" />


</LinearLayout>

但是中间没有打包:

【问题讨论】:

  • 你有你的意思的预览示例吗?
  • @ErwinKurniawanA 我添加了我的代码。我希望空间在 AAAA 之前和 BBB 之后

标签: android layout android-constraintlayout constraint-layout-chains


【解决方案1】:

在您的 LinearLayout 中使用 android:gravity="center"

你必须把 textviews 放到另一个 linealayout 中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    tools:context=".MainActivity"
    android:gravity="center"
    android:layout_gravity="center">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="AAAAAAAAAAAAAAAAAAAAAAA" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="DOT" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="BBB" />

    </LinearLayout>

</LinearLayout>

【讨论】:

  • stackoverflow.com/a/26190050/3528912gravity 和 layout_gravity 的区别。但也许我们正在互相交谈。您可以移植一个示例以准确了解您的意思。
  • 对我来说:当我设置父母的重力时,它等于设置孩子的 layout_gravity。没有?
  • 例如,如何在线性布局中仅将一个元素设置在中心,而将其余元素以固定边距打包?
  • 添加了我不起作用的代码。你有什么建议?
猜你喜欢
  • 2011-03-20
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-07
  • 1970-01-01
相关资源
最近更新 更多