如何在listview中删除项目填充?

问题描述 投票:1回答:2

我最近创建了一个包含数组适配器和customview的listview。这就是我做的

 @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final Model_order m_order = getItem(position);
        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.single_item_order, parent, false);
        }
...
}

这是我的single_item_order

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

    >

<TextView
    android:layout_gravity="center_vertical"
    android:visibility="invisible"
    android:textAlignment="center"
    android:layout_width="0dp"
    android:layout_weight="0"
    android:layout_height="wrap_content"
    android:id="@+id/code"
    android:includeFontPadding="false"
    android:lineSpacingExtra="0dp"

    />

<TextView
    android:includeFontPadding="false"
    android:lineSpacingExtra="0dp"

    android:layout_gravity="center_vertical"
    android:textAlignment="center"
    android:id="@+id/name"
    android:layout_width="0dp"
    android:layout_weight="35"
    android:layout_height="wrap_content" />

<TextView
    android:includeFontPadding="false"
    android:lineSpacingExtra="0dp"

    android:layout_gravity="center_vertical"
    android:textAlignment="center"
    android:id="@+id/price"
    android:layout_width="0dp"
    android:layout_weight="35"
    android:layout_height="wrap_content" />

    <TextView
        android:includeFontPadding="false"
        android:lineSpacingExtra="0dp"

        android:id="@+id/qty"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="10"
        android:textAlignment="center"
         />

    <TextView

    android:textAlignment="center"
    android:id="@+id/total"
    android:layout_width="0dp"
    android:layout_weight="20"
    android:layout_height="wrap_content" />

    <Button
        android:id="@+id/add"
        android:layout_gravity="center_vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+"
        android:minHeight="0dp"
        android:minWidth="0dp" />

    <Button
        android:id="@+id/min"
        android:layout_gravity="center_vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="-"
        android:minHeight="0dp"
        android:minWidth="0dp" />

</LinearLayout>

这就是我得到的

现在,我正在尝试删除填充。这是我到目前为止所尝试的

  • 在我的single_item_order中添加填充0dp仍然无法正常工作
  • android:dividerHeight="0dp"添加到我的listview标记仍然无效
  • 尝试这个答案https://stackoverflow.com/a/5309871/10298089仍然没有帮助

那么我怎么能删除它?或者至少我可以调整填充。

这是我的活动主要内容,其中包含我的列表视图

<?xml version="1.0" encoding="utf-8"?>


    <LinearLayout
        android:orientation="horizontal"
        android:id="@+id/bubble_outerWrapper"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:weightSum="100"
        xmlns:android="http://schemas.android.com/apk/res/android">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="0dp"
            android:layout_weight="50"
            android:layout_height="match_parent"
            android:background="@android:color/transparent"
            android:clipToPadding="false"
            android:layout_marginBottom="0dp"
            />
        <View

            android:layout_width="0dp"
            android:layout_weight="5"
            android:layout_height="match_parent" />

        <android.support.v7.widget.CardView
            android:layout_gravity="end"
            android:layout_width="0dp"
            android:layout_weight="45"
            android:padding="0dp"
            android:layout_margin="0dp"
            android:layout_height="match_parent">
                <RelativeLayout

                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                    <TextView
                        android:id="@+id/side_title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center_vertical"
                        android:text="Order Information"
                        android:textSize="14sp"
                        android:typeface="serif" />

                        <ListView
                            android:layout_below="@id/side_title"
                            android:layout_marginTop="5dp"
                            android:id="@+id/listss"
                            android:layout_width="match_parent"
                            android:layout_height="250dp" />
    <LinearLayout
        android:layout_below="@id/listss"
    android:layout_centerHorizontal="true"
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
                        <Button
                            android:minHeight="0dp"
                            android:minWidth="0dp"
                            android:id="@+id/clear"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="X"
                            />

                        <Button

                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Pay"
                            />

    </LinearLayout>
                </RelativeLayout>
        </android.support.v7.widget.CardView>

    </LinearLayout>
android listview
2个回答
1
投票

更简单的布局如下所示:

  • 一个垂直的LinearLayout包含ListView和动作栏
  • 用于动作栏的LinearLayout的高度为wrap_content所以它只能达到其孩子所需的高度
  • ListViewheight0dp和它的weight1,以便让它占用动作栏留下的所有可用空间
<?xml version="1.0"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:drawingCacheQuality="high">
    <ListView
        android:id="@+id/messagingListView"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:divider="@null"
        android:layout_margin="0dp"
        android:dividerHeight="10dp"
        android:paddingTop="10dp"
        android:paddingRight="10dp"
        android:paddingBottom="0dp"
        android:paddingLeft="10dp" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="0dp"
        android:background="#FFFFFF">
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="new_game"
            android:textColor="#FFFFFF" />
    </LinearLayout>
</LinearLayout>

如果空间仍然存在,您绝对应该向我们展示用于列表项的布局

注意 : 在Android Studio中,尝试单击LinearLayout以使其在Preview中突出显示,然后在ListView上查看是否存在间隙(使用缩放)。如果您看到上面的布局有差距,那么它就是您计算机上的Android Studio Preview错误,它适用于所有设备。


0
投票

试试这个

<?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:orientation="horizontal">

<!--<TextView-->
    <!--android:layout_gravity="center_vertical"-->
    <!--android:visibility="visible"-->
    <!--android:textAlignment="center"-->
    <!--android:layout_width="0dp"-->
    <!--android:layout_weight="0"-->
    <!--android:layout_height="wrap_content"-->
    <!--android:text="asdfa"-->
    <!--android:includeFontPadding="false"-->
    <!--android:lineSpacingExtra="0dp"-->

    <!--/>-->

<TextView
    android:includeFontPadding="false"
    android:lineSpacingExtra="0dp"
    android:layout_gravity="center_vertical"
    android:textAlignment="center"
    android:id="@+id/name"
    android:layout_width="0dp"
    android:layout_weight="35"
    android:layout_height="wrap_content" />

<TextView
    android:includeFontPadding="false"
    android:lineSpacingExtra="0dp"
    android:layout_gravity="center_vertical"
    android:textAlignment="center"
    android:id="@+id/price"
    android:layout_width="0dp"
    android:layout_weight="35"
    android:layout_height="wrap_content" />

<TextView
    android:includeFontPadding="false"
    android:lineSpacingExtra="0dp"
    android:id="@+id/qty"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_weight="10"
    android:textAlignment="center"
    />

<TextView

    android:textAlignment="center"
    android:id="@+id/total"
    android:layout_width="0dp"
    android:layout_weight="20"
    android:layout_height="wrap_content" />

<Button
    android:id="@+id/add"
    android:layout_gravity="center_vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="+"
    android:minHeight="0dp"
    android:minWidth="0dp" />

<Button
    android:id="@+id/min"
    android:layout_gravity="center_vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="-"
    android:minHeight="0dp"
    android:minWidth="0dp" />

© www.soinside.com 2019 - 2024. All rights reserved.