【问题标题】:How to make the listview items look organized?如何使列表视图项目看起来井井有条?
【发布时间】:2016-10-16 05:10:23
【问题描述】:

列表视图看起来很糟糕。因为组织。我想让它变得更好。我的意思是结肠需要固定在一个固定的位置,而不是到处移动。所以这是我的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="wrap_content"
    android:background="@android:color/transparent"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:orientation="vertical"
    >

    <LinearLayout
        android:id="@+id/lyt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="1px"
        android:gravity="left|top"
        android:padding="2dp"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="150dp"

            android:layout_weight="5"
            android:layout_height="wrap_content"
            android:textColor="@color/darker_grey"
            android:gravity="left|top"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Name"
            android:textStyle="bold"/>

        <TextView
            android:gravity="left|top"
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_height="wrap_content"
            android:textColor="@color/darker_grey"
            android:paddingLeft="5dp"
            android:paddingRight="10dp"
            android:text=":" />

        <TextView
            android:textStyle="bold"
            android:gravity="left|top"
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_weight="6"
            android:layout_height="wrap_content"
            android:textColor="@color/darker_grey"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Medium Text"/>
    </LinearLayout>

</LinearLayout>

【问题讨论】:

  • 无法查看图片
  • 请看图片
  • @bucky 我认为您可以采取的唯一合乎逻辑的步骤是假设第一列的宽度恒定,并使用第二列的其余宽度。您可以使用layout_weight 来实现此目的。
  • 也试过了,但没用..

标签: android xml android-layout listview android-studio


【解决方案1】:

现在试试这个。希望你能得到你想要的。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="vertical"
android:paddingLeft="5dp"
android:paddingRight="5dp">

<LinearLayout
    android:id="@+id/lyt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="left|top"
    android:orientation="horizontal"
    android:padding="2dp">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:gravity="left|top"
        android:text="Name"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@color/darker_grey"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".3"
        android:gravity="left|top"
        android:paddingLeft="5dp"
        android:paddingRight="10dp"
        android:text=":"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@color/darker_grey" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:gravity="left|top"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@color/darker_grey"
        android:textStyle="bold" />
</LinearLayout>

【讨论】:

  • 不,它不起作用,部分文本被隐藏了。而且组织仍然很糟糕
  • 请尝试重新检查。我编辑了我的答案。如果同样的错误,请随时询问。
  • 我认为这可能是重力的原因。首先尝试删除 android:gravity="left|top" 并检查它。
【解决方案2】:

尝试更改您的列表项 xml 看起来像这样。您应该为父布局使用 weight sum,并为具有适当权重值的子视图设置 android:layout_width"match_parent"

<?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:layout_weight="3"
    android:background="@android:color/transparent"
    android:orientation="horizontal"
    android:padding="8dp" >

    <LinearLayout
        android:id="@+id/lyt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="1px"
        android:orientation="horizontal"
        android:padding="2dp">

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:text="Name"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="5dp"
            android:paddingRight="10dp"
            android:text=":"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Medium Text"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textStyle="bold" />
    </LinearLayout>

</LinearLayout>

【讨论】:

    【解决方案3】:

    好的,现在我得到了你需要的东西。 使用相对布局,因此您可以选择放置嵌套布局的位置。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:id="@+id/login_container"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="hi hi"></TextView>
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerInParent="true"
            android:text=":"></TextView>
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:text="hey hey"></TextView>
    
    </RelativeLayout>
    

    【讨论】:

    • 我只需要 xml 中的帮助
    • 是的,对不起,现在我明白了,试试上面的解决方案
    • 在 textview 3 中稍作修改后,您的代码运行良好 .. 我将宽度从 wrap_content 更改为其他值,然后我工作了.. 感谢您的帮助 ..
    • 我很高兴它起作用了,我使用 wrap 来不占用太多空间,但当然您可以将其更改为适合您需要的任何内容 :)
    • :) 我不能赞成你的答案,因为我没有足够的声望..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多