Intereting Posts
Аудиовыход на гарнитуре и громкой связи одновременно Отпечаток сертификата SHA1 Android Date Time picker в одном диалоговом окне Идеальный способ установки глобального обработчика исключенных исключений в Android Прокрутка не работает с координаторомLayout + изображение параллакса + BottomSheetLayout Поворот видео в портретном режиме Клавиши курсора не работают при использовании sqlite3 из оболочки adb Нарисовать прозрачную форму на холст Максимальная собственная память, которую можно назначить для приложения для Android Используйте намерение отправлять данные в свою деятельность Просто установленные Windows 10 и Eclipse больше не запускаются Android: сбор ANT завершился неудачей с помощью google-play-services-lib: «разрешить путь без файла project.properties для проекта» Отображение профиля профиля FB в виде кругового изображения в приложении Как создать build.xml для проекта Android? Как я могу использовать ORMLite с SQLCipher вместе в Android?

Android: TextView внутри ScrollView: как ограничить высоту

Я поместил TextView внутри ScrollView в Android:

<ScrollView android:layout_width = "fill_parent" android:layout_height = "wrap_content"> <TextView android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </ScrollView> 

С этой конфигурацией scrollview растет, чтобы обернуть содержимое textview. Как я могу добиться того, что scrollview занимает как можно больше места (для небольшого текста), но в то же время ограничивает размер до 100dp (для длинных текстов)?

  • Если я установил layout_height в 100dp, много места будет потрачено впустую, когда текст будет коротким
  • Если я устанавливаю layout_height в wrap_content, scrollview рискует заполнить весь экран, но я не хочу, чтобы весь экран был только в этом прокрутке. Это максимум 100dp.

Решение, которое было найдено:

Спасибо за все ответы. Для всех людей, имеющих одну и ту же проблему, здесь принято решение: создать собственный класс ScrollView используя этот класс внутри вашего XML-файла вместо ScrollView. Затем переопределите onMeasure() :

 public class ScrollMyVew extends ScrollView { public static final int maxHeight = 100; // 100dp // default constructors @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { heightMeasureSpec = MeasureSpec.makeMeasureSpec(dpToPx(getResources(),maxHeight), MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } private int dpToPx(Resources res, int dp) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, res.getDisplayMetrics()); } } 

Это решение взято из https://stackoverflow.com/a/23617530/3080611

Solutions Collecting From Web of "Android: TextView внутри ScrollView: как ограничить высоту"

Попробуйте что-то вроде этого:

 <ScrollView android:id="@+id/myScrollView" android:layout_width="match_parent" android:layout_height="0dp" android:fillViewport="true"/> <TextView android:id="@+id/myTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxHeight="your_value_here"/> </ScrollView> 

Динамическое изменение размера TextView, если количество символов превышает определенную сумму.

Пример:

 TextView v = (TextView) findViewById(R.id.sometext); LayoutParams lp = v.getLayoutParams(); lp.height = 50; v.setLayoutParams(lp);