[JAVA] [Android] Weitere Schaltflächen erstellen

Mehr Schaltfläche

Teile

contentTextView: Textansicht, für die Sie den Anzeigebereich variabel machen möchten readMoreTextView: Textansicht, die als "Mehr" -Schaltfläche verwendet wird

Spezifikation

Wenn der Inhalt mehr als 8 Textzeilen enthält → "Mehr" anzeigen

Implementierungsdetails

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.

Code

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);
                }
            }
    }


Recommended Posts

[Android] Weitere Schaltflächen erstellen
Links zum Erstellen von Android-Apps (für Anfänger)
Hinweise zum Erstellen eines Android-Plug-Ins für Unity