滑动以关闭表格行无法正常工作

时间:2014-04-25 08:33:10

标签: android tablerow

我正在尝试使用swipe来关闭我的应用程序的功能,我有一个TableLayout,里面有一堆TableRows,每个表行都有一个TextView和EditText,就像这样

<TableLayout
    android:id="@+id/tableLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TableRow
        android:id="@+id/tableRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/textView"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:layout_weight="2"/>

        <EditText
            android:id="@+id/editText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="7"
            android:layout_weight="1"
            android:selectAllOnFocus="true"
            android:inputType="numberDecimal"/>
    </TableRow>
</TableLayout>

this之后,我将SwipeDismissTouchListener.java类添加到我的应用程序中,并将其添加到onActivityCreated()方法中的Activity代码中。

        tableRow.setOnTouchListener(new SwipeDismissTouchListener(
                      tableRow,
                      null,
                        new SwipeDismissTouchListener.DismissCallbacks() {
                            @Override
                            public boolean canDismiss(Object token) {
                                return true;
                            }

                            @Override
                            public void onDismiss(View view, Object token) {
                                tableLayout.removeView(tableRow);
                            }
                      }));

但是当我刷桌子时没有发生任何事情,这似乎是什么问题?

2 个答案:

答案 0 :(得分:2)

您需要为视图实施onClickListener。然后只有SwipeDismissTouchListener似乎有效。

参考this。其余的代码看起来很好。

希望这有帮助。

答案 1 :(得分:0)

 tableRow.setOnTouchListener(new SwipeDismissTouchListener(
                      tableRow,
                      null,
                        new SwipeDismissTouchListener.DismissCallbacks() {
                            @Override
                            public boolean canDismiss(Object token) {
                                return true;
                            }

                            @Override
                            public void onDismiss(View view, Object token) {
                                tableLayout.removeView(view);
                            }
                      }));