There is a 2-line horizontal list with items, and you need to display the current position of at least 2 items when scrolling (not important in the scrollbar or textview). Implementation of adapters and all other standard.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); inetItems = new ArrayList<>(); requestQueue = Volley.newRequestQueue(this); GsonBuilder gsonBuilder = new GsonBuilder(); gson = gsonBuilder.create(); fetchPosts(); button = (ImageButton) findViewById(R.id.imageLogcat); gifView = (GifView) findViewById(R.id.gifView); gifView = new GifView(this); textView = (TextView) findViewById(R.id.indicator); final RecyclerView rvItems = (RecyclerView) findViewById(R.id.rvItems); adapter = new ItemsAdapter(getApplicationContext(), inetItems); rvItems.setAdapter(adapter); final GridLayoutManager layoutManager2 = new GridLayoutManager(this, 2, LinearLayoutManager.HORIZONTAL, false); layoutManager2.scrollToPosition(0); rvItems.setLayoutManager(layoutManager2); rvItems.setHasFixedSize(true); SnapHelper snapHelper = new LinearSnapHelper(); snapHelper.attachToRecyclerView(rvItems); ItemOffsetDecoration itemDecoration = new ItemOffsetDecoration(this, R.dimen.item_offset); rvItems.addItemDecoration(itemDecoration); rvItems.addOnItemTouchListener(new RecyclerTouchListener(this, rvItems, new ClickListener() { @Override public void onClick(View view, int position) { //Values are passing to activity & to fragment as well // Toast.makeText(MainActivity.this, "Single Click on position: " + (position + 1), // Toast.LENGTH_SHORT).show(); Items intentItem = inetItems.get(position); int userId = Integer.parseInt(intentItem.getUserId()); int id = Integer.parseInt(intentItem.getId()); Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("userId", userId); intent.putExtra("id", id); startActivity(intent); } @Override public void onLongClick(View view, int position) { // Toast.makeText(MainActivity.this, "Long press on position: " + position, // Toast.LENGTH_LONG).show(); } })); rvItems.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState) } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); int firstVisibleItemPosition = ((GridLayoutManager) (rvItems.getLayoutManager())).findFirstVisibleItemPosition(); //textView.setText(String.valueOf(firstVisibleItemPosition)); int offset = recyclerView.computeVerticalScrollOffset(); int extent = recyclerView.computeVerticalScrollExtent(); int range = recyclerView.computeVerticalScrollRange(); int percentage = (int)(100.0 * offset / (float)(range - extent)); String x = "13/14"; textView.setText(String.valueOf(x)); } }); } Thanks in advance.
