Intereting Posts
Подготовка настраиваемого типа радиогрупп Установка z порядка просмотра с помощью bringChildToFront () Как настройка baselineAligned to false улучшает производительность в LinearLayout? RecyclerView не учитывает перевод при переработке просмотров Веб-просмотр Android не может отображать видео youtube, встроенное через iframe Как добавить коллекцию коллекций apache в Android Studio (Gradle) Сделайте кнопку «вверх», как кнопка «назад» на Android Зачем встраивать команду repo в скрипт bash? Как установить BackgroundColor на ImageView на Android? Android с Gradle (Java завершена с ненулевым значением выхода 2) Атрибуты стиля пользовательского стиля AlertDialog Можно ли задействовать сетевой трафик через Wi-Fi или сеть TMobile? Пользовательский информационный оконный адаптер с пользовательскими данными на карте v2 ОШИБКА: Попытка вызвать cordova.exec () перед «deviceready». игнорирование Facebook – «Не удается выполнить запрос по имени пользователя»

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