Как сделать просмотр текста, который находится под редактируемым текстом, с отображением клавиатуры - PullRequest
0 голосов
/ 27 января 2019

У меня есть следующая раскладка

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/DarkGray"
    android:orientation="vertical">


        <EditText
            android:id="@+id/etCaption"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginBottom="8dp"
            android:layout_weight="1"           
            android:gravity="start|top" />

        <TextView
            android:id="@+id/tvCounter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_gravity="right" />


</LinearLayout>

, которая по существу имеет текст редактирования, занимающий экран, и текстовое представление внизу.

Когда я нажимаю на текст редактирования, появляется клавиатура, и оназакрывает текстовое представление внизу.

Как я могу убедиться, что текстовое представление выдвинуто вверх, чтобы оно было видимым для пользователя, пока он печатает в тексте редактирования.

У меня оно изначально было какмакет ограничения, и я изменил его на linrear макет, и я до сих пор не могу заставить его работать

Спасибо

Ответы [ 3 ]

0 голосов
/ 27 января 2019

Вам нужно это утверждение к manifest.xml.

android:windowSoftInputMode="stateVisible|adjustResize"

Убедитесь, что под активностью объявлено textview.

0 голосов
/ 27 января 2019

Чтобы настроить раскладку, если клавиатура открыта

Попробуйте этот код: манифест

<activity android:name=".MainActivity"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

В какую деятельность вы хотите настроить клавиатуру, добавьте эту строку

android:windowSoftInputMode="adjustResize"

см. Снимки экрана:

enter image description here

Я надеюсь, что это работа для вас

0 голосов
/ 27 января 2019

узел с layout_height="match_parent" не будет сдвинут в любом направлении, потому что в макете нет места для перемещения;это должно быть layout_height="wrap_content" («показать границы макета»).добавление android:windowSoftInputMode="adjustResize" или "adjustPan|adjustResize" к activity в Manifest.xml должно изменить размер макета, когда клавиатура появляется и исчезает.

Главное окно действия всегда изменяется, чтобы освободить место дляпрограммная клавиатура на экране.

и этот (или очень похожий) эффект обеспечивается материалом TextInputLayout :

anatomy of a TextInputLayout*Например, 1020 *

api "com.google.android.material:material:1.0.0"

(обратите внимание на атрибуты app:counterEnabled и app:counterMaxLength):

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/caption"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="start"
        android:hint="@string/hint_caption"
        android:inputType="textNoSuggestions"
        android:text="@={item.caption}"

        app:counterEnabled="true"
        app:counterMaxLength="50"/>

</com.google.android.material.textfield.TextInputLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...