6
Das habe ich gemacht. Ich habe die versteckten Komponenten auf dem Element der Listenansicht angezeigt, wenn Sie das Element der Listenansicht jetzt wischen Ich muss die Komponenten wieder ausblenden, wenn ein anderes Element kopiert wird oder die Listenansicht gescrollt wird.Wie verstecken/zeigen Sie versteckte Komponenten auf Elemente der Listenansicht beim Streichen in Android?
public class MainActivity extends Activity {
ListView lstView1;
ArrayList<HashMap<String, String>> MyArrList;
GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 100;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyArrList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
/*** Rows 1 ***/
map = new HashMap<String, String>();
map.put("ImageID", "1");
map.put("ImageDesc", "Sea View1");
map.put("ImagePath", "pic_a");
map.put("status", "false");
MyArrList.add(map);
/*** Rows 2 ***/
map = new HashMap<String, String>();
map.put("ImageID", "2");
map.put("ImageDesc", "Sea View2");
map.put("ImagePath", "pic_b");
map.put("status", "false");
MyArrList.add(map);
/*** Rows 3 ***/
map = new HashMap<String, String>();
map.put("ImageID", "3");
map.put("ImageDesc", "Sea View 3");
map.put("ImagePath", "pic_c");
map.put("status", "false");
MyArrList.add(map);
/*** Rows 4 ***/
map = new HashMap<String, String>();
map.put("ImageID", "4");
map.put("ImageDesc", "Sea View 4");
map.put("ImagePath", "pic_d");
map.put("status", "false");
MyArrList.add(map);
// listView1
lstView1 = (ListView) findViewById(R.id.listView1);
lstView1.setAdapter(new ImageAdapter(this));
// lstView1.setEnabled(false);
gestureDetector = new GestureDetector(new MyGestureDetector());
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
return false;
}
};
lstView1.setOnTouchListener(gestureListener);
//lstView1.setOnScrollListener(l)
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
int pos = YourSlideRightToLeft(lstView1.pointToPosition(
(int) e1.getX(), (int) e1.getY()));
MyArrList.get(pos).put("status", "true");
((BaseAdapter) lstView1.getAdapter())
.notifyDataSetChanged();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// left to right swipe
YourSlideLeftToRight(lstView1.pointToPosition(
(int) e1.getX(), (int) e1.getY()));
int pos = YourSlideRightToLeft(lstView1.pointToPosition(
(int) e1.getX(), (int) e1.getY()));
MyArrList.get(pos).put("status", "true");
((BaseAdapter) lstView1.getAdapter())
.notifyDataSetChanged();
}
} catch (Exception e) {
// nothing
return true;
}
return true;
}
}
// Command for Slide Right to Left (<-----)
public int YourSlideRightToLeft(int position) {
Toast.makeText(
MainActivity.this,
"<-- Your Slide Right to Left ImgID = "
+ MyArrList.get(position).get("ImageID"),
Toast.LENGTH_SHORT).show();
return position;
}
// Command for Slide Left to Right (<-----)
public int YourSlideLeftToRight(int position) {
Toast.makeText(
MainActivity.this,
"---> Your Slide Left to Right ImgID = "
+ MyArrList.get(position).get("ImageID"),
Toast.LENGTH_SHORT).show();
return position;
}
public class ImageAdapter extends BaseAdapter {
private Context context;
public ImageAdapter(Context c) {
// TODO Auto-generated method stub
context = c;
}
public int getCount() {
// TODO Auto-generated method stub
return MyArrList.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(final int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.activity_column, null);
}
// ColImage
ImageView imageView = (ImageView) convertView
.findViewById(R.id.ColImgPath);
imageView.getLayoutParams().height = 80;
imageView.getLayoutParams().width = 80;
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(5, 5, 5, 5);
int ResID = context.getResources().getIdentifier(
MyArrList.get(position).get("ImagePath"), "drawable",
context.getPackageName());
imageView.setImageResource(ResID);
// ColImgID
TextView txtPosition = (TextView) convertView
.findViewById(R.id.ColImgID);
txtPosition.setPadding(10, 0, 0, 0);
txtPosition.setText(MyArrList.get(position).get("ImageID") + ".");
// ColPicname
TextView txtPicName = (TextView) convertView
.findViewById(R.id.ColImgDesc);
txtPicName.setPadding(5, 0, 0, 0);
txtPicName.setText(MyArrList.get(position).get("ImageDesc"));
String value = MyArrList.get(position).get("status");
if (value.contentEquals("true")) {
((TableRow) convertView.findViewById(R.id.tableRow4))
.setVisibility(View.VISIBLE);
((Button) convertView.findViewById(R.id.btn)).setTag(Integer
.valueOf(position));
((ToggleButton) convertView.findViewById(R.id.tg))
.setTag(Integer.valueOf(position));
} else {
((LinearLayout) convertView.findViewById(R.id.tableRow4))
.setVisibility(View.GONE);
}
return convertView;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Beachten Sie, dass Link-Only-Antworten nicht empfohlen werden, SO-Antworten sollten der Endpunkt einer Suche nach einer Lösung sein (im Gegensatz zu einem weiteren Zwischenstopp von Referenzen, die im Laufe der Zeit abgestanden werden). Bitte beachten Sie, dass Sie hier eine eigenständige Zusammenfassung hinzufügen und den Link als Referenz beibehalten. – kleopatra