I have 30 images on grid view (3 images per row). If user select 20th image and go to next screen and come back then I want to focus to that position. I used following line to code, it works for first 8 rows but in last 2 row it is not scrolling. Please help.
gridview.setSelection(position);
gridview.requestFocusFromTouch();
gridview.setSelection(position);
Thanks
The reason is because your view will be reused in your adapter.
public class ImageAdapter extends BaseAdapter {
private Context context;
private final String[] someprivatevariable;
public ImageAdapter(Context context, String[] mobileValues) {
// Your boring constructor
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
// REUSE VIEW IF NOT NULL CODE
if (convertView == null) {
.....
.....
you generally create your view here
} else {
gridView = (View) convertView;
}
return gridView;
}
}
If your view is forced not to reuse then you can scrolltoposition by saving this value
int index = gridview.getFirstVisiblePosition();
and restore the value by
gridview.smoothScrollToPosition(int index)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With