我在我的應用程序中有一個ListView,它可以在用戶請求後通過在每個listview行的開始處拖動imageview來重新排列。我在一個小窗口中向用戶顯示列表視圖,爲了最大化空間,我將拖動視圖的可見性設置爲GONE,並計劃在用戶選擇調用編輯列表的菜單項時將其設置爲可見項目。Android:改變所有列表視圖行中項目的可見性
下面是一排項目的佈局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/activatedBackgroundIndicator"
android:orientation="horizontal" >
<ImageView
android:id="@id/drag_handle"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_margin="8dp"
android:visibility="gone"
android:src="@drawable/ic_drag_dots_holo_dark" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="16dp"
android:layout_marginTop="16dp"
android:background="?android:attr/dividerVertical" />
<TextView
android:id="@+id/drag_n_drop_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:maxLines="1"
android:minHeight="24dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="?android:attr/textColorPrimary" />
</LinearLayout>
下面是菜單選擇代碼:
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_edit_playlist:
if (inEditMode) {
//If we are already showing the drag view, hide it.
inEditMode = false;
findViewById(R.id.drag_handle).setVisibility(View.GONE);
}
else {
//If the drag view is hidden, make it visible.
inEditMode = true;
findViewById(R.id.drag_handle).setVisibility(View.VISIBLE);
}
return true;
default:
return super.onContextItemSelected(item);
}
}
這段代碼的問題是,當我叫setVisibility()
它只會改變拖動視圖在列表視圖的第一個項目上的可見性以及所有其他行上的拖動視圖保持隱藏狀態。
在這種情況下,我會做什麼使所有行上的所有dragViews可見?
編輯 這裏是我怎麼想它按編輯後看的image,這裏是一個image它的外觀,現在,上面的代碼。
謝謝!
1張照片勝於詞語。 – hakiko 2013-02-13 20:29:01
@hakiko我不知道我明白你的意思。 – 2013-02-14 04:43:39
顯示你的gui請 – hakiko 2013-02-14 13:53:15