如何从自定义列表视图中获取特定视图和更改属性?

我正在创建一个包含两个视图的自定义列表视图:一个 Imageview 和一个 TextView。一切正常,但我想访问列表视图的特定位置以更改可见性。


我试过这个方法,但它不起作用。


private void updateView(int index){

//        View v = mListView.getChildAt(index-mListView.getFirstVisiblePosition());


        View v = mListView.getAdapter().getView(index-mListView.getFirstVisiblePosition(), null, mListView);

        if (v==null){ return; }

        ImageView imageView = Objects.requireNonNull(v).findViewById(R.id.listview_image);

        imageView.setAlpha(0.2f);

        imageView.setVisibility(View.GONE);

    }

例如:如果首选项包含“排名”,那么我想将 setAlpha(0.2f) 设置为列表视图中的位置 0 到 5。



波斯汪
浏览 88回答 1
1回答

慕尼黑的夜晚无繁华

根据您的代码,您需要将以下行添加到 getView 方法的末尾自定义适配器列表视图&nbsp; &nbsp; if (Objects.requireNonNull(preferences.getString("rank", "")).equalsIgnoreCase("Recruit")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; && position <= 5) //will check the item position&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; //setAlpha or do anything you want if the Rank is Recruit and position is lesser or equal to 5&nbsp; &nbsp; &nbsp; &nbsp; holder.img.setAlpha(0.2f);&nbsp; &nbsp; } else&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; //else do the remaining part&nbsp; &nbsp; }&nbsp; &nbsp; return view;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java