从listview中删除自定义的最后一行

时间:2016-05-18 05:47:30

标签: android listview android-studio mismatch

我有一个ListView,其中包含多个TextView和一个自定义页脚边框。我希望ListView的最后一行消失。

我尝试过这样的事情:

if (position == arrayList.size() - 1) {
    viewHolder.lineSeperator.setVisibility(View.GONE);
}

它正在工作但是当我滚动ListView时,行位置发生了变化并且不匹配。我该如何解决这个问题?

activity_main.xml中

<ListView
        android:id="@+id/listRow"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/imgFooter"
        android:layout_below="@+id/linearRow"
        android:divider="@null"
        android:listSelector="@android:color/transparent"
        android:overScrollMode="never"
        android:scrollbars="none"
        tools:listitem="@layout/my_row" />

my_row.xml

<LinearLayout
        android:id="@+id/linearRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/imgProfile"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/margin_20"
            android:layout_marginTop="@dimen/margin_10"
            android:orientation="vertical">

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

                <com.example.ui.widget.TextView
                    android:id="@+id/txtName"
                    style="@style/TextViewStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:singleLine="false"
                    customFont:fontTextStyle="1" />
            </LinearLayout>

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

                <com.example.ui.widget.TextView
                    android:id="@+id/txtType"
                    style="@style/TextViewStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:singleLine="false"
                    customFont:fontTextStyle="1" />
            </LinearLayout>

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

                <com.example.ui.widget.TextView
                    android:id="@+id/txtManager"
                    style="@style/TextViewStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:singleLine="false"
                    customFont:fontTextStyle="1" />
            </LinearLayout>

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

                <com.example.ui.widget.TextView
                    android:id="@+id/txtLocation"
                    style="@style/TextViewStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:singleLine="false"
                    customFont:fontTextStyle="1" />
            </LinearLayout>

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

                <com.mawthouq.ui.widget.CustomTextView
                    android:id="@+id/txtTotalRow"
                    style="@style/TextViewStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:singleLine="false"
                    customFont:fontTextStyle="1" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

    <View
        android:id="@+id/lineSeperator"
        android:layout_width="match_parent"
        android:layout_height="@dimen/divider_height"
        android:layout_below="@+id/linearRow"
        android:layout_marginLeft="@dimen/margin_20"
        android:layout_marginRight="@dimen/margin_20"
        android:layout_marginTop="@dimen/margin_10"
        android:background="@color/divider_color" />

2 个答案:

答案 0 :(得分:2)

您可能需要添加其他案例,请尝试此操作并查看其是否有效:

if (position == arrayList.size() - 1) {
    viewHolder.lineSeperator.setVisibility(View.GONE);
}else{
    viewHolder.lineSeperator.setVisibility(View.VISIBLE);
}

答案 1 :(得分:0)

使用

获取ArrayList中的最后位置
int LastPos = arrayList.size() - 1;

然后放,

if (position == LastPos) {
viewHolder.lineSeperator.setVisibility(View.GONE);
}
else
{
viewHolder.lineSeperator.setVisibility(View.VISIBLE);
}

适配器类