Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Recyclerview-增加所有内部文本视图的字体大小_Java_Android_Android Recyclerview - Fatal编程技术网

Java Android Recyclerview-增加所有内部文本视图的字体大小

Java Android Recyclerview-增加所有内部文本视图的字体大小,java,android,android-recyclerview,Java,Android,Android Recyclerview,此代码在我的主要活动中(工作正常): 和recyclerview适配器: public class Adapter_RecyclerViewReader extends RecyclerView.Adapter<Adapter_RecyclerViewReader.MyViewHolder> { private List<ReaderLineObj> readerLineObjList; float minTextSize = 50; float

此代码在我的主要活动中(工作正常):

和recyclerview适配器:

public class Adapter_RecyclerViewReader extends RecyclerView.Adapter<Adapter_RecyclerViewReader.MyViewHolder> {
    private List<ReaderLineObj> readerLineObjList;
    float minTextSize = 50;
    float maxTextSize = 80;
    Adapter_RecyclerViewReader.MyViewHolder holderGlobal;

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView tvRowHidId, tvRowTitle, tvRowContent;

        public MyViewHolder(View view) {
            super(view);
            tvRowTitle = (TextView) view.findViewById(R.id.tvRowTitle);
            tvRowContent = (TextView) view.findViewById(R.id.tvRowContent);

        }


    }

    public void ResizeTextSize(Boolean makeBigger){


    }

    public Adapter_RecyclerViewReader(List<ReaderLineObj> readerLineObjList) {
        this.readerLineObjList = readerLineObjList;
    }


    @Override
    public Adapter_RecyclerViewReader.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.row_recycler_list_reader, parent, false);
        return new MyViewHolder(itemView);
    }



    @Override
    public void onBindViewHolder(Adapter_RecyclerViewReader.MyViewHolder holder, int position) {
        ReaderLineObj readerLineObj = readerLineObjList.get(position);

        if (readerLineObj.getTitle().length() >0 ){
            holder.tvRowTitle.setText(Html.fromHtml(readerLineObj.getTitle()));
        }else{
            holder.tvRowTitle.setVisibility(View.GONE);
        }

        holder.tvRowContent.setText(Html.fromHtml(readerLineObj.getContent()));




    }


    @Override
    public int getItemCount() {
        return readerLineObjList.size();
    }
}
public类适配器\u recyclerviewer扩展了RecyclerView.Adapter

点击左键将在整个网格视图标题和内容中为当前字体大小添加1sp

我如何才能做到这一点?

需要注意的要点: i) 您将更改活动类中的值,但适配器必须实现您对大小所做的更改 ii)需要使用重新加载视图

mAdapter.notifyDataSetChanged();
方法

那么,我们的工作是什么呢。您可以使用静态浮点值来保存大小,例如,在MainActivity初始化中

static float size_of_items;
然后按“增量”按钮将浮点值更改为

size_of_items=size_of_items+1;
在减量按钮上执行类似操作

注意:在adapter类上,对onBindViewHolder方法进行以下更改:

holder.tvRowTitle.setTextSize(TypeValue.COMPLEX_UNIT_SP, MainActivity.size_of_items);
holder.tvRowContent.setTextSize(TypeValue.COMPLEX_UNIT_SP, MainActivity.size_of_items);
这样您就可以在onBindViewHolder中获得代码,如下所示

      if (readerLineObj.getTitle().length() >0 ){
            holder.tvRowTitle.setText(Html.fromHtml(readerLineObj.getTitle()));
        }else{
            holder.tvRowTitle.setVisibility(View.GONE);
        }

        holder.tvRowContent.setText(Html.fromHtml(readerLineObj.getContent()));
holder.tvRowTitle.setTextSize(TypeValue.COMPLEX_UNIT_SP, MainActivity.size_of_items);
    holder.tvRowContent.setTextSize(TypeValue.COMPLEX_UNIT_SP, MainActivity.size_of_items);
最后: 记住使用
mAdapter.notifyDataSetChanged()
每次更改
项目大小后
您就有了这样一个简单的方法:

private void increaseTextSize(){
size_of_items=size_of_items+1;
mAdapter.notifyDataSetChanged();
}
祝你一切顺利,希望答案不会太迟。您不需要我上次创建的方法,而是可以在setOnClickListener方法上的“增大大小”按钮上使用内部代码。祝你好运

private void increaseTextSize(){
size_of_items=size_of_items+1;
mAdapter.notifyDataSetChanged();
}