0

The first item of the listview get lost after screen fills with rows at time of scroll needed. Till 7 or 8th item the first row is visible but after 8th row it gets missing. After scroll starts everything gets normal except the first row lost. Below is the code looking for help.

public class ProfileArrayAdapter extends ArrayAdapter<Results> {


private Context mContext;

public ProfileArrayAdapter(Context context, int resource, ArrayList<Results> resultsArrayList) {
    super(context, resource, resultsArrayList);
    this.mContext =context;
}


static class ViewHolder {
    TextView questionIdView;
    TextView testTypeView;
    TextView correctAnswerCountView;
    TextView wrongAnswerCountView;
    TextView emptyAnswerCountView;
    TextView testDateView;
    TextView successRateView;
}


@Override
public View getView(int position, View view, ViewGroup viewGroup) {
    View convertView = view;
    ViewHolder viewHolder;
    Results results = getItem(position);
    if (convertView == null) {
        convertView = LayoutInflater.from(getContext()).inflate(R.layout.overall_summary_template, viewGroup, false);
        viewHolder = new ViewHolder();
        viewHolder.questionIdView = (TextView) convertView.findViewById(R.id.overall_question_id);
        viewHolder.testTypeView = (TextView) convertView.findViewById(R.id.overall_test_type);
        viewHolder.correctAnswerCountView = (TextView) convertView.findViewById(R.id.overall_correct_answer);
        viewHolder.wrongAnswerCountView = (TextView) convertView.findViewById(R.id.overall_wrong_answer);
        viewHolder.emptyAnswerCountView = (TextView) convertView.findViewById(R.id.overall_empty_answer);
        viewHolder.testDateView = (TextView) convertView.findViewById(R.id.overall_test_date);
        viewHolder.successRateView = (TextView) convertView.findViewById(R.id.success_rate);
        convertView.setTag(viewHolder);

    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }
    String testId = " #" + results.getItemTestIdString();
    viewHolder.questionIdView.setText(testId);
    String testType = results.getItemTestType();
    viewHolder.testTypeView.setText(testType);
    String testDate = results.getItemTestDate();
    viewHolder.testDateView.setText(testDate);
    String wrongOnesText = mContext.getString(R.string.wrong_summary);
    String falseOnes = wrongOnesText + String.valueOf(results.getItemNumberOfFalseAnswers());
    viewHolder.wrongAnswerCountView.setText(falseOnes);
    String emptyOnesText = mContext.getString(R.string.empty_summary);
    String emptyOnes = emptyOnesText + String.valueOf(results.getItemNumberOfEmptyAnswers());
    viewHolder.emptyAnswerCountView.setText(emptyOnes);
    String correctOnesText = mContext.getString(R.string.correct_summary);
    String correctOnes = correctOnesText + String.valueOf(results.getItemNumberOfCorrectAnswers());
    viewHolder.correctAnswerCountView.setText(correctOnes);
    String successRate = "% " + results.getItemSuccessRate();
    viewHolder.successRateView.setText(successRate);
    return convertView;
}

}
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115

1 Answers1

0

Override two methods getItemId() and getItemViewType() in the adapter itself ..and make both of them return the default return statement (position) and check.

Santanu Sur
  • 10,997
  • 7
  • 33
  • 52
  • Unfortunately did not help, still 1st row gone after 8th row. `@Override public long getItemId(int position) { return super.getItemId(position); } @Override public int getItemViewType(int position) { return super.getItemViewType(position); }` – Ömer Faruk Dec 31 '17 at 08:51
  • send the screenshot please – Santanu Sur Dec 31 '17 at 13:02
  • This is before the last row fits the screen https://drive.google.com/open?id=1_dZXm9rCL6-gbcLoGq4s9OkGh9Elvmvy, this is after first row lost https://drive.google.com/open?id=1uiNv_Vy_yBKXqJGcumXNTtQ0brvwQU42 – Ömer Faruk Dec 31 '17 at 13:08
  • either reduce the height of your row layout..of listview.(are you giving it a fixed height) if its already reduced ..then try ` fit systemswindow` to true of listview – Santanu Sur Dec 31 '17 at 13:48
  • Thank you so much, I was using constraintLayout, and constraining the bottom. I changed layout to LinearLayout, problem solved. – Ömer Faruk Dec 31 '17 at 16:55