contentTextView: Textansicht, für die Sie den Anzeigebereich variabel machen möchten readMoreTextView: Textansicht, die als "Mehr" -Schaltfläche verwendet wird
Wenn der Inhalt mehr als 8 Textzeilen enthält → "Mehr" anzeigen
Verwenden Sie getEllipsisCount () für Android 5 und höher Kann es nicht darunter verwendet werden? Da es ein bisschen ist, wird beurteilt, ob "mehr" angezeigt werden soll, abhängig davon, ob die Anzahl der angezeigten Textzeilen größer oder kleiner als die maximale Anzahl von Zeilen in der Textansicht ist.
MainActivity.java
public void setView (){
contentsTextView.setMaxLines(8);
contentsTextView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
int lineCount = contentsTextView.getLineCount();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//Es scheint, dass es nicht richtig funktioniert, es sei denn, es ist Android 5 oder höher
int hiddenLineCount = contentsTextView.getLayout().getEllipsisCount(lineCount - 1);
if (hiddenLineCount > 0) {
readMoreTextView.setVisibility(View.VISIBLE);
} else {
readMoreTextView.setVisibility(View.GONE);
}
} else{
//Android weniger als 5
if(lineCount > 8){
readMoreTextView.setVisibility(View.VISIBLE);
}else{
readMoreTextView.setVisibility(View.GONE);
}
}
return true;
}
});
}
@Override
public void onClick(View v) {
if (v.getId() == readMoreTextView.getId()){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
contentsTextView.setMaxLines(100);
contentsTextView.setEllipsize(null);
} else {
contentsTextView.setMaxLines(1000);
contentsTextView.setEllipsize(null);
}
}
}