Change the alpha of recyclerview item with beacon detection

 ̄綄美尐妖づ 提交于 2019-12-12 05:36:54

问题


In a Fragment I have a list of items construct with RecyclerView (adapter and viewholder). Each item of the list is linked with a estimote beacon. So i want to highlight the item view (setAlpha or add a imageView) when the beacon is detected.

The beacon detection is in the fragment file :

beaconManager.setRangingListener(new BeaconManager.RangingListener() {
            @Override
            public void onBeaconsDiscovered(Region region, List<Beacon> list) {
                if (!list.isEmpty()) {
                    Beacon nearestBeacon = list.get(0);   
                    replaceIconBeaconCard(nearestBeacon);                     
                    Log.d("Airport", "Nearest places: " + nearestBeacon);
                }
            }
        });

Actually, I display a beacon icon on the item view. But the purpose is to highlight the detected item and put a alpha on the others items.

private void replaceIconBeaconCard(Beacon beacon){
        for(SItem item: items) {
            if (!item.getMajor().equals("")) {
                int i = item.getId().intValue();
                SCard card = listCards.get(i-1);
                if (Integer.parseInt(item.getMajor()) == beacon.getMajor()) {
                    rv.getLayoutManager().scrollToPosition(i);                    
                    int resID = getResources().getIdentifier("beacon_ice", "drawable", getActivity().getPackageName());
                    card.setField_1(resID);
                } else {
                    card.setField_1(Color.TRANSPARENT);
                }
            }
        }
        mAdapter.notifyDataSetChanged();
    }

I don't know how I can access to item layout and change the alpha.


回答1:


Finally i access to the layout alpha with the object SCard in the adapater :

In the activity i set the alpha

card.setField_2(0.5F);

In the viewholder i add the setter

 public void setItemCardField2(float alpha) {
        swipeLayout.setAlpha(alpha);
    }

And the adapter make the job

final ShowroomCard card = mItemList.get(position);
viewHolder.setItemCardField2(card.getField_2());


来源:https://stackoverflow.com/questions/40017052/change-the-alpha-of-recyclerview-item-with-beacon-detection

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!