1. 程式人生 > >動態設定textview顯示行數

動態設定textview顯示行數

用setMaxLines,不要用setLines,靈活一些

holder.tvPadGradeContent.setMaxLines(1);
package com.mine.project.function.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view
.View; import android.view.ViewGroup; import android.widget.RatingBar; import android.widget.TextView; import com.mine.project.R; import com.mine.project.function.domain.CommentInfo; import com.mine.project.network.utils.MyDateUtil; import java.util.ArrayList; import java.util.List; /** * Created by wy on 2017/7/8. */
public class PadGradeAdpter extends RecyclerView.Adapter<PadGradeAdpter.ViewHolder> { private List<CommentInfo> objects = new ArrayList<CommentInfo>(); private Context context; private LayoutInflater layoutInflater; private int mLines; public PadGradeAdpter(Context context, List<CommentInfo> objects) { super();
this.context = context; this.layoutInflater = LayoutInflater.from(context); this.objects = objects; } public CommentInfo getItem(int position) { return objects.get(position); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { ViewHolder holder = new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_padgrade, parent, false)); return holder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { initializeViews((CommentInfo) getItem(position), holder); // objects=(CommentInfo) getItem(position); } @Override public int getItemCount() { return objects.size(); } private void initializeViews(CommentInfo object, final ViewHolder holder) { //TODO implement String mCommentTime = new MyDateUtil().change(object.getCommentTime()); holder.tvPadGradeTime.setText(mCommentTime); holder.rbOrderDetailXingxing.setRating((float) object.getScore()); holder.tvPadGradeContent.setText(object.getContent() + ""); holder.tvPadGradeContent.post(new Runnable() { @Override public void run() { mLines = holder.tvPadGradeContent.getLineCount(); Log.e("1", "run:--------->mLines: "+ mLines); if (mLines > 1) { holder.tvPadGradeContent.setLines(1); holder.tvPadGradeContent.setEllipsize(TextUtils.TruncateAt.END); holder.mTvZhankai.setVisibility(View.VISIBLE); } holder.mTvZhankai.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.e("1", "run:--------->66 " + mLines); holder.tvPadGradeContent.setLines(mLines); holder.mTvZhankai.setVisibility(View.GONE); } }); } }); } protected class ViewHolder extends RecyclerView.ViewHolder { private TextView tvPadGradeTime; private RatingBar rbOrderDetailXingxing; private TextView tvPadGradeContent; private TextView mTvZhankai; public ViewHolder(View view) { super(view); tvPadGradeTime = (TextView) view.findViewById(R.id.tv_padGradeTime); rbOrderDetailXingxing = (RatingBar) view.findViewById(R.id.rb_order_detail_xingxing1); tvPadGradeContent = (TextView) view.findViewById(R.id.tv_padGradeContent); mTvZhankai = (TextView) view.findViewById(R.id.tv_zhankai); } } }
package com.mine.project.function.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RatingBar;
import android.widget.TextView;

import com.mine.project.R;
import com.mine.project.function.domain.CommentInfo;
import com.mine.project.network.utils.MyDateUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by wy on 2017/7/8.
 */

public class PadGradeAdpter extends RecyclerView.Adapter<PadGradeAdpter.ViewHolder> {
    private List<CommentInfo> objects = new ArrayList<CommentInfo>();

    private Context context;
    private LayoutInflater layoutInflater;
    private int mLines;

    public PadGradeAdpter(Context context, List<CommentInfo> objects) {
        super();
        this.context = context;
        this.layoutInflater = LayoutInflater.from(context);
        this.objects = objects;
    }

    public CommentInfo getItem(int position) {
        return objects.get(position);
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        ViewHolder holder = new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_padgrade, parent, false));
        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        initializeViews((CommentInfo) getItem(position), holder);

//        objects=(CommentInfo) getItem(position);
    }

    @Override
    public int getItemCount() {
        return objects.size();
    }


    private void initializeViews(CommentInfo object, final ViewHolder holder) {
        //TODO implement
        String mCommentTime = new MyDateUtil().change(object.getCommentTime());
        holder.tvPadGradeTime.setText(mCommentTime);
        holder.rbOrderDetailXingxing.setRating((float) object.getScore());
        holder.tvPadGradeContent.setText(object.getContent() + "");
        holder.tvPadGradeContent.post(new Runnable() {
            @Override
            public void run() {
                mLines = holder.tvPadGradeContent.getLineCount();
                 Log.e("1", "run:--------->mLines:   "+ mLines);
                if (mLines > 1) {
                    holder.tvPadGradeContent.setLines(1);
                    holder.tvPadGradeContent.setEllipsize(TextUtils.TruncateAt.END);
                    holder.mTvZhankai.setVisibility(View.VISIBLE);
                }
                holder.mTvZhankai.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        Log.e("1", "run:--------->66 " + mLines);
                        holder.tvPadGradeContent.setLines(mLines);
                        holder.mTvZhankai.setVisibility(View.GONE);
                    }
                });

            }
        });


    }

    protected class ViewHolder extends RecyclerView.ViewHolder {
        private TextView tvPadGradeTime;
        private RatingBar rbOrderDetailXingxing;
        private TextView tvPadGradeContent;
        private TextView mTvZhankai;

        public ViewHolder(View view) {
            super(view);
            tvPadGradeTime = (TextView) view.findViewById(R.id.tv_padGradeTime);
            rbOrderDetailXingxing = (RatingBar) view.findViewById(R.id.rb_order_detail_xingxing1);
            tvPadGradeContent = (TextView) view.findViewById(R.id.tv_padGradeContent);
            mTvZhankai = (TextView) view.findViewById(R.id.tv_zhankai);
        }
    }
}