@Override public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder viewHolder; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false); viewHolder = new ViewHolder(); viewHolder.expandableTextView = (ExpandableTextView) convertView.findViewById(R.id.expand_text_view); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.expandableTextView.setText(sampleStrings[position], mCollapsedStatus, position); return convertView; }
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_demo1, container, false); ((TextView) rootView.findViewById(R.id.sample1).findViewById(R.id.title)).setText("Sample 1"); ((TextView) rootView.findViewById(R.id.sample2).findViewById(R.id.title)).setText("Sample 2"); ExpandableTextView expTv1 = (ExpandableTextView) rootView.findViewById(R.id.sample1) .findViewById(R.id.expand_text_view); ExpandableTextView expTv2 = (ExpandableTextView) rootView.findViewById(R.id.sample2) .findViewById(R.id.expand_text_view); expTv1.setOnExpandStateChangeListener(new ExpandableTextView.OnExpandStateChangeListener() { @Override public void onExpandStateChanged(TextView textView, boolean isExpanded) { Toast.makeText(getActivity(), isExpanded ? "Expanded" : "Collapsed", Toast.LENGTH_SHORT).show(); } }); expTv1.setText(getString(R.string.dummy_text1)); expTv2.setText(getString(R.string.dummy_text2)); return rootView; } }
public void setText(@Nullable CharSequence text, @NonNull SparseBooleanArray collapsedStatus, int position) { mCollapsedStatus = collapsedStatus; mPosition = position; boolean isCollapsed = collapsedStatus.get(position, true); clearAnimation(); mCollapsed = isCollapsed; mExpandIndicatorController.changeState(mCollapsed); setText(text); }