Отрегулируйте EditText для размера шрифта - PullRequest
5 голосов
/ 11 февраля 2012

Мне интересно, как настроить высоту редактируемого текста, например, размер шрифта. Я имею в виду, что editText всегда имеет одинаковую высоту, независимо от того, меняю ли я fontSize на 5sp или оставляю по умолчанию Конечно, я мог бы использовать что-то вроде этого:

<EditText
         android:id="@+id/msgInput"
         android:layout_width="wrap_content"
         android:layout_height="20dp"
         android:inputType="textMultiLine"
         android:textSize="14sp"
         android:hint="@string/hintMsgInput">
</EditText>

но я также хочу растянуть, если есть более 1 строки. Как я могу это сделать?

[EDIT]:

Хорошо, я решил это следующим образом:

msgInput = (EditText) findViewById(R.id.msgInput);
        msgInput.addTextChangedListener(new TextWatcher()
        {

            public void afterTextChanged(Editable s) {
                if (msgInput.getLineCount() > 1)
                {
                    msgInput.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
                }
                else
                {
                    int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());
                    msgInput.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, height));
                }
            }

            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {         
            }

            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {         
            }

        });

Ответы [ 7 ]

3 голосов
/ 11 февраля 2012

Проверьте это

<EditText 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content" 
                android:id="@+id/editText1" 
                android:textSize="5sp"
        android:inputType="textMultiLine"
        android:text="hello h r u hello  h r u hello  h r u hello  h r u hello  h r u "
></EditText>
3 голосов
/ 11 февраля 2012

установить высоту редактирования текста как wrap_content

android:layout_height="wrap_content"
2 голосов
/ 11 февраля 2012

Вы предоставляете ограничение 20 dp к высоте EditText.Если вы хотите, чтобы textView регулировал высоту с учетом размера текста, используйте

android:layout_height="wrap_content"

Также по умолчанию одна строка имеет значение falseКоторый гарантирует несколько строк true.

0 голосов
/ 10 апреля 2019

Вы можете добавить @style имя страницы

<style name="value_big" parent="@android:style/TextAppearance.Medium">
  <item name="android:textSize">35sp</item>
  <item name="android:textColor">@color/white</item>
  <item name="android:textStyle">bold</item>
  <item name="android:typeface">sans</item>
  <item name="android:scrollbarAlwaysDrawVerticalTrack">true</item>
</style>

, позвоните в текст вашего редактирования

                  <EditText
                    android:id="@+id/msgtext"
                    android:layout_width="fill_parent"
                    style="@style/value_big"
                    android:layout_alignParentLeft="true"
                    android:layout_marginLeft="10dip"
                    android:layout_marginTop="10dip"
                    android:layout_marginRight="10dip"
                    android:inputType="textMultiLine"
                    android:layout_height="150dip"
                    android:gravity="top"
                    android:padding="5dip"> 
                  </EditText>
0 голосов
/ 08 сентября 2018

set android: focusable = "false" в editText

0 голосов
/ 11 февраля 2012

Вы можете использовать scrollView, добавить свой editText в ScrollView и использовать это:

android:inputType="textImeMultiLine"
0 голосов
/ 11 февраля 2012

Если вы хотите, чтобы высота EditText превышала одну строку, вы можете поместить в свой EditText:

android: layout_height = "fill_parent" и установить android: layout_weight = "1", чтобы получить больше места для добавления дополнительныхпросмотров в деятельности

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