【问题标题】:Android - Same Alignment - LayoutAndroid - 相同的对齐方式 - 布局
【发布时间】:2017-07-24 01:30:35
【问题描述】:

我在列表视图中显示数据。我希望所有名称都对齐。我使用重量是因为我不希望图像放置大部分屏幕。但是通过这种方式,我无法以相同的方式对齐图像。这是它的外观。 image of page

这是我的代码:

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


<ImageView
    android:id="@+id/imageView"
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_gravity="center_vertical"
    android:layout_weight="1"
    android:paddingLeft="20dp"
    android:scaleType="fitStart"
    app:srcCompat="@drawable/food_icon" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_weight="3"
    android:paddingLeft="0dp">

    <TextView
        android:id="@+id/menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="0dp"
        android:text="TextView"
        android:textSize="18sp"
        android:textStyle="bold" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >

        <TextView
            android:id="@+id/cost"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="TextView"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/owner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="TextView" />

        </LinearLayout>
       </LinearLayout>

  </LinearLayout>

我需要帮助。谢谢...

【问题讨论】:

  • 为什么有嵌套的LinearLayouts?你能发布一个你想要它看起来像什么的样本吗?
  • android:gravity="left" 将其用于菜单文本 id
  • @Nick 这实际上是我想要的,但我也希望所有名称都以相同的对齐方式开头。也许我无法用英语解释。我希望名称以相同的 X 坐标开头。例如,看看 Joe 和 Stevekjflk 不是从同一个坐标开始
  • @hareeshJ 我做了,但没有任何区别
  • 尝试取出两个内部的LinearLayouts。充其量,他们什么也没做,实际上可能会导致您的问题。

标签: android android-layout alignment


【解决方案1】:

试试这个

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:paddingLeft="20dp"
        android:scaleType="fitStart"
        app:srcCompat="@drawable/food_icon" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/imageView"
        android:layout_weight="3"
        android:orientation="vertical"
        android:paddingLeft="0dp">

        <TextView
            android:id="@+id/menu"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:gravity="left"
            android:paddingLeft="0dp"
            android:text="TextView"
            android:textSize="18sp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="8dp"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/cost"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="TextView"
                android:textSize="14sp" />

            <TextView
                android:id="@+id/owner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="TextView" />
        </LinearLayout>
    </LinearLayout>

</RelativeLayout>

【讨论】:

  • @haresshJ 谢谢它的工作。我可以改变一点,但这就是我想要的。
【解决方案2】:

我认为您必须将父视图的 android:weight_sum 设置为子视图的权重之和。例如,第一个线性布局的 weight_sum 为 3 + 1 = 4。

【讨论】:

  • 你没有理解我的问题。您会在图像旁边看到名称。例如,Joe 和 Stevekjnl 的对齐方式不同。
  • 可能是textview居中,所以要设置文字对齐到左?
  • 我为此编写了 android:layout_gravity="left" 。它没有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多