缩放只有 TextView 的 RecyclerView 中的所有项目?
Scale all items in a RecyclerView of only TextViews?
需要将 RecyclerView 的所有 TextView 的 TextSize 动态缩放到一个 Size。
我试过一次只缩放一个可见的项目,给每个 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()
,我猜!
谢谢!
我的建议是:
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:
Returns the total number of items in the data set hold by the adapter.
Returns the number of children in the group.
因此 getItemCount()
将 return 您的整个适配器数据集大小
( getItemCount()
>= getChildCount()
)
需要将 RecyclerView 的所有 TextView 的 TextSize 动态缩放到一个 Size。
我试过一次只缩放一个可见的项目,给每个 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()
,我猜!
谢谢!
我的建议是:
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:
Returns the total number of items in the data set hold by the adapter.
Returns the number of children in the group.
因此 getItemCount()
将 return 您的整个适配器数据集大小
( getItemCount()
>= getChildCount()
)