TextView android: ellipsize = "конец" проблема - PullRequest
5 голосов
/ 26 марта 2012

В моем приложении у меня есть ellipsize d мой TextView, так что если текст слишком большой, в конце будет отображаться ... с использованием android:ellipsize="end".

egText ABCDEFGHIJKLMNOPQRSTUVWXYZ отображается как ABCDEFGHIJ....Но когда текст маленький, как ABCDEF, он все равно показывает ... в конце, делая текст похожим на AB....Я не могу исправить ширину текстового представления, так как это же текстовое представление используется в другом месте с некоторыми другими требованиями к ширине.Что я должен сделать, чтобы заставить его работать и показывать ..., только если текст достаточно большой.

Ответы [ 2 ]

11 голосов
/ 26 марта 2012

// В вашем текстовом представлении

также добавьте нижеприведенные атрибуты

android:maxEms="8"
android:singleLine="true"

ПРИМЕЧАНИЕ: вы можете настроить размер ems в соответствии с тем, сколько символов вы хотите показать.

1 голос
/ 04 сентября 2012
 txtvw.setText("The Indian economy is the world's eleventh-largest by nominal GDP and third-largest by purchasing power parity (PPP). " +
                "      Following market-based economic reforms in 1991, India became one of the fastest-growing major economies; " +
                "      it is considered a newly industrialised country. However, it continues to face the challenges of poverty, illiteracy, corruption, malnutrition, and inadequate public healthcare. " +
                "      A nuclear weapons state and a regional power, it has the third-largest standing army in the world and ranks ninth in military expenditure among nations." +
                "      India is a federal constitutional republic governed under a parliamentary system consisting of 28 states and 7 union territories. " +
                "      India is a pluralistic, multilingual, and multiethnic society. " +
                "      It is also home to a diversity of wildlife in a variety of protected habitats.");
        ViewTreeObserver vto = txtvw.getViewTreeObserver();
        vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

            @Override
            public void onGlobalLayout() {
                ViewTreeObserver obs = txtvw.getViewTreeObserver();
                obs.removeGlobalOnLayoutListener(this);
                if(txtvw.getLineCount() > 1){

                    int lineEndIndex = txtvw.getLayout().getLineEnd(1);
                    String text = txtvw.getText().subSequence(0, lineEndIndex-3)+"...";
                    txtvw.setText(text);

                }

            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...