迭代ListView并更改某些行的内容(ListItem)

时间:2016-03-02 15:19:08

标签: android listview

我有一个ListItems(RelativeLayout)拥有的ListView LinearLayout中的textView和两个ImageButton

这是我的ListItem的xml;

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:descendantFocusability="blocksDescendants"
    >

    <TextView
        android:id="@+id/list_item_quote"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingBottom="15dp"
        android:paddingTop="15dp"
        style="@style/quote_text"
        />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/lytShareLike"
        android:layout_gravity="center"
        android:gravity="center"
        android:visibility="gone"
        android:layout_margin="1dp"
        android:layout_alignLeft="@id/list_item_quote"
        android:layout_alignTop="@id/list_item_quote"
        android:layout_alignRight="@id/list_item_quote"
        android:layout_alignBottom="@id/list_item_quote">

    <ImageButton
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:scaleType="centerInside"
        android:id="@+id/btnShare"
        android:background="@null"
        android:onClick="quoteShareClick"
        android:src="@drawable/share"
        android:layout_marginRight="10dp"
        />
    <ImageButton
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:scaleType="centerInside"
        android:id="@+id/btnLike"
        android:background="@null"
        android:src="@drawable/heartnot"
        android:onClick="quoteLikeClick"

        />
    </LinearLayout>
</RelativeLayout>

我有ItemClickListener,在单击ListItem时可以设置LinearLayout。直到这里没有问题。

我想要做的是,点击ListItem后,如果用户点击另一个ListItem,则其他未点击的Listitems&#39; LinearLayouts应该再次 GONE

这是我的onClickListener;

listQuotes.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                                    long id) {
                LinearLayout lytShareLike = (LinearLayout) view.findViewById(R.id.lytShareLike);

                for (int i = 0; i < listQuotes.getAdapter().getCount(); i++) {
                    if (position != i && i != 0) {
                        LinearLayout lnrTemp = (LinearLayout) listQuotes.getAdapter().getView(i, null, null).findViewById(R.id.lytShareLike);
                        lnrTemp.setVisibility(View.GONE);
                    }
                }
            }
        });

for迭代按预期迭代项目LinearLayouts,但LinearLayouts仍然可见

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码控制它:

$('#carousel').on('drag.owl.carousel', function() {
  $('.carousel').trigger('change.owl.carousel', {
    mouseDrag: false,
    touchDrag: false,
    pullDrag: false
  });
}).on('dragged.owl.carousel', function() {
  $('.carousel').trigger('change.owl.carousel', {
    mouseDrag: true,
    touchDrag: true,
    pullDrag: true
  });
});
适配器中的

//...
int index = -1;
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    index = position;
    mAdaper..notifyDataSetChanged();
}
//...