布局崩溃 - 如何使其均匀/对齐?

发布于 2024-11-08 17:18:05 字数 2636 浏览 0 评论 0原文

请查看设计师的图片:

在此处输入图像描述

现在看看我得到了什么:

在此处输入图像描述

这是我的布局:

<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:background="@drawable/nav_back">
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/home"
                android:background="@drawable/nav_selected"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="Home"/>
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/home_g"
                android:background="@drawable/nav_back"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="This is long string that pushes layout"/>
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/available_g"
                android:background="@drawable/nav_back"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="Available"/>
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/completed_g"
                android:background="@drawable/nav_back"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="Completed"/>
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/mail_g"
                android:background="@drawable/nav_back"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="Mail"/>

    </LinearLayout>

问题。我该如何:

  1. 确保无论如何 - 屏幕分解为 5 个偶数段 - 所以所有按钮,无论里面有文本。

  2. 如果一个按钮将布局向下推 - 我如何确保其他按钮也填充该垂直空间?就像主页按钮并不完全向下一样 - 您可以看到 nav_selected 结束的位置

  3. 我有按照谷歌格式的3种尺寸的PNG图标。如果可能的话,我希望为 drawableTop 提供一些填充,以便图标在我的屏幕上看起来更小 - 更接近设计师屏幕的外观。

谢谢!

Please see designer's picture:

enter image description here

Now see what I'm getting:

enter image description here

Here is my layout:

<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:background="@drawable/nav_back">
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/home"
                android:background="@drawable/nav_selected"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="Home"/>
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/home_g"
                android:background="@drawable/nav_back"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="This is long string that pushes layout"/>
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/available_g"
                android:background="@drawable/nav_back"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="Available"/>
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/completed_g"
                android:background="@drawable/nav_back"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="Completed"/>
        <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:drawableTop="@drawable/mail_g"
                android:background="@drawable/nav_back"
                android:layout_weight="1"
                android:textColor="#FFF"
                android:textSize="10dp"
                android:text="Mail"/>

    </LinearLayout>

Questions. How do I:

  1. Make sure no matter what - screen broken down to 5 even segments - so all buttons even no matter text inside.

  2. If one button pushes layout down - how do I make sure other buttons fill that vertical space as well? Like home button is not all way down - you can see where nav_selected ends

  3. I have icons in PNG in 3 sizes as per google format. I want to have some padding for drawableTop if possible so icons look smaller on my screen - closer to what designers screen look.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

友谊不毕业 2024-11-15 17:18:05

此页面上有关 LinearLayouts 的部分中了解有关layout_weight的内容。这是您要用来使所有视图具有相同宽度的属性。我不太熟悉它的实现,但我认为当你这样做时,你可能不希望将宽度设置为wrap_content。

编辑:

提示:创建比例尺寸
在屏幕上布局,创建一个
容器视图组对象
布局宽度和布局高度
属性设置为 fill_parent;分配
子项的高度或宽度为 0
(零);然后分配相对权重
每个孩子的价值观取决于
各占屏幕的比例是多少
应该有。

这似乎是你想做的。

Read about layout_weight on this page in the section about LinearLayouts. That is the attribute you're going to want to use to get the views to all get the same width. I am not super familiar with its implementation but I would think you probably wont want width set to wrap_content when you do it that way.

Edit:

Tip: To create a proportionate size
layout on the screen, create a
container view group object with the
layout_width and layout_height
attributes set to fill_parent; assign
the children height or width to 0
(zero); then assign relative weight
values to each child, depending on
what proportion of the screen each
should have.

This seems like what you want to do.

思念满溢 2024-11-15 17:18:05

或者,您可以使用 GridView(甚至 ListView、Gallery)并创建简单的适配器,您将在其中重写 getView() 方法来膨胀您的布局。我认为该布局非常容易创建,并且每个按钮都是相同的。此外,如果元素超过 5 个,您将能够滚动。

Alternatively, you can use GridView ( or even ListView, Gallery) and create simple adapter, where you will override getView() method to inflate your layout. I think that layout is pretty easy to create and it will be the same for each button. In addition, you'll be able to scroll if there's more than 5 elements.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文