如何正确对齐此布局?

发布于 2024-11-15 22:48:29 字数 1105 浏览 6 评论 0原文

我有两个文本视图。我希望其中一个左对齐,另一个右对齐。几乎使它看起来像一个 2 列表。

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/profileLayout" android:orientation="vertical">
        <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/experience" android:orientation="horizontal">
            <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/experienceLabel" android:textStyle="bold" android:layout_weight="0" android:text="Experience"></TextView>
            <LinearLayout android:id="@+id/linearLayout4" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1"></LinearLayout>
            <TextView android:text="TextView" android:layout_height="wrap_content" android:id="@+id/experienceTextView" android:layout_gravity="right" android:layout_weight="0" android:layout_width="wrap_content"></TextView>
        </LinearLayout>
    </LinearLayout>

I have two textviews. I want one of them to be left aligned and the other to be right aligned. Pretty much so that it looks like a 2 column table.

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/profileLayout" android:orientation="vertical">
        <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/experience" android:orientation="horizontal">
            <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/experienceLabel" android:textStyle="bold" android:layout_weight="0" android:text="Experience"></TextView>
            <LinearLayout android:id="@+id/linearLayout4" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1"></LinearLayout>
            <TextView android:text="TextView" android:layout_height="wrap_content" android:id="@+id/experienceTextView" android:layout_gravity="right" android:layout_weight="0" android:layout_width="wrap_content"></TextView>
        </LinearLayout>
    </LinearLayout>

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

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

发布评论

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

评论(4

方觉久 2024-11-22 22:48:29
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal">
    <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1"/>    
    <TextView android:layout_height="wrap_content" android:layout_weight="0" android:layout_width="wrap_content"/>
</LinearLayout>

将第一个的权重设置为 1,这样它将占用所有额外的空间。将第二个打开的内容设置为包裹内容,因此它只占用所需的空间。

但是为什么它们周围有一个额外的 LinearLayout 呢?如果您有嵌套的 LinearLayout,您可能应该使用relativelayout。

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal">
    <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1"/>    
    <TextView android:layout_height="wrap_content" android:layout_weight="0" android:layout_width="wrap_content"/>
</LinearLayout>

Set the weight of the first one to 1 so it will eat up all of the extra space. Set the 2nd oen to wrap content, so it only takes up as much space as it needs.

But why do you have an extra LinearLayout around them? If you have nested LinearLayouts, you should probably be using a RelativeLayout instead.

随波逐流 2024-11-22 22:48:29
        <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/experienceLabel" android:textStyle="bold" android:layout_weight="1" android:text="Experience"></TextView>

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

</LinearLayout>
        <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/experienceLabel" android:textStyle="bold" android:layout_weight="1" android:text="Experience"></TextView>

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

</LinearLayout>
岁月染过的梦 2024-11-22 22:48:29

使用相对布局。关于相对布局 链接 示例链接

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" 
android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content"
    android:layout_width="wrap_content" android:id="@+id/experienceLabel"
    android:textStyle="bold" android:layout_weight="0" android:text="Experience"
    android:layout_alignParentLeft="true"/>
<TextView android:text="TextView" android:layout_height="wrap_content"
    android:id="@+id/experienceTextView" android:layout_gravity="right"
    android:layout_weight="0" android:layout_width="wrap_content"
    android:layout_alignParentRight="true" />

使用RelativeLayout的好处:它减少了布局的数量。这也会优化你的用户界面。

Use Relative Layout. About Relative Layout Link Example link

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" 
android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content"
    android:layout_width="wrap_content" android:id="@+id/experienceLabel"
    android:textStyle="bold" android:layout_weight="0" android:text="Experience"
    android:layout_alignParentLeft="true"/>
<TextView android:text="TextView" android:layout_height="wrap_content"
    android:id="@+id/experienceTextView" android:layout_gravity="right"
    android:layout_weight="0" android:layout_width="wrap_content"
    android:layout_alignParentRight="true" />

Benefit of using RelativeLayout: it reduces your number of layout. Which will optimize your ui too.

猛虎独行 2024-11-22 22:48:29

我不完全确定您想要的确切布局,但您可以尝试一下:

<?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="wrap_content"
    android:id="@+id/profileLayout"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:weightSum="2"
        android:id="@+id/experience"
        android:orientation="horizontal">
        <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:id="@+id/experienceLabel"
            android:textStyle="bold"
            android:layout_weight="1"
            android:text="Experience"/>

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

您也使用 layout_gravity 而不是 gravitylayout_gravity 告诉父级您想要如何布局,gravity 告诉内容如何布局。

请注意,我如何将父布局中的 weightSum 设置为 2,然后将两个子布局的权重分别设置为 1。我还将父级设置为 fill_parent

你在那里也有额外的布局 - 如果你想要间距,请在第二个文本视图上设置边距或使用视图(比 LinearLayout 更简单的对象)

I'm not entirely sure of the exactly layout you want, but you can try this:

<?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="wrap_content"
    android:id="@+id/profileLayout"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:weightSum="2"
        android:id="@+id/experience"
        android:orientation="horizontal">
        <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:id="@+id/experienceLabel"
            android:textStyle="bold"
            android:layout_weight="1"
            android:text="Experience"/>

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

You were using layout_gravity rather than gravity also. layout_gravity tells the parent how you want to be laid out, gravity tells content how to be laid out.

Notice how I have a weightSum in the parent layout to 2 and then set the two children to a weight of 1 each. I also set the parent to fill_parent

You had and extra layout in there too - if you want spacing, set a margin on the second textview or use a view (a simpler object than a LinearLayout)

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