[JAVA] [Android] Création de boutons supplémentaires

Bouton Plus

les pièces

contentsTextView: vue de texte pour laquelle vous voulez rendre la zone d'affichage variable readMoreTextView: vue de texte utilisée comme bouton "plus"

spécification

S'il y a plus de 8 lignes de texte dans le contenu → Afficher "plus"

Détails d'implémentation

Utilisez getEllipsisCount () sur Android 5 et supérieur Ne peut-il pas être utilisé en dessous de cela? Comme cela semble être le cas, il est jugé s'il faut afficher «plus» selon que le nombre de lignes de texte affichées est plus grand ou plus petit que le nombre maximum de lignes dans la vue de texte.

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) {
                        //Il semble que cela ne fonctionnera pas correctement à moins qu'il ne s'agisse d'android 5 ou supérieur

                        int hiddenLineCount = contentsTextView.getLayout().getEllipsisCount(lineCount - 1);
                        if (hiddenLineCount > 0) {
                            readMoreTextView.setVisibility(View.VISIBLE);
                        } else {
                            readMoreTextView.setVisibility(View.GONE);
                        }
                    } else{
                        //android moins de 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] Création de boutons supplémentaires
Liens pour créer des applications Android (pour les débutants)
Remarques sur la création d'un plug-in Android pour Unity