需要动态地将RecyclerView的所有TextView的TextSize缩放为单个大小。
我尝试过一次只缩放一个可见项目,为每个TextView提供不同的FontSize。
itemCount = recyclerView.getLayoutManager().getChildCount();
for (int counter = 0; counter < itemCount; counter++) {
mTV = (TextView) recyclerView.getLayoutManager().getChildAt(counter);
mTV.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTV.getTextSize() * detector
.getScaleFactor());
}
我想, getItemCount()
不能代替getChildCount()
使用!
谢谢!
答案 0 :(得分:0)
我的建议是:
1)在适配器中添加文本大小变量(假设为mTextSize
)。
2)将setter方法添加到此变量中。
public void setTextSize(float size){
mTextSize = size;
}
3)在onBindViewHolder()
方法中,您可以根据需要更改文字大小
public void onBindViewHolder(ViewHolder holder, int position) {
if(holder.textView.getTextSize() != mTextSize && mTextSize != 0.0){
holder.textView.setTextSize(mTextSize);
}
}
4)当你想改变大小时,只需要调用:
adapter.setTextSize(newSize);
adapter.notifyDataSetChanged();
<强> PS:强>
返回适配器保留的数据集中的项目总数。
返回组中的子项数。
因此getItemCount()
将返回整个适配器DataSet大小
(getItemCount()
&gt; = getChildCount()
)