Есть ли способ иметь EditText на изображении, чтобы при нажатии открыть Soft KeyBoard, в то время как ImageView не изменит свою позицию? - PullRequest
0 голосов
/ 05 мая 2019

Моя деятельность состоит в том, чтобы выбрать изображение от пользователя и editText для получения ввода пользователя. Моя проблема заключается в том, что при нажатии editText он открывает программную клавиатуру, которая переворачивает изображение вверх, чтобы иметь плохой пользовательский опыт. Я могу изменить размер или уменьшить размер изображения, но я не хочу. Буду признателен, если кто-то может предоставить способы отображения текста редактирования над изображением, чтобы при нажатии открывалась программная клавиатура без изменения положения изображения. Это возможно через RelativeLayout? Не знаете, могут ли быть другие способы получить желаемое решение? Заранее спасибо за помощь !!!

Мой XML-файл

 <RelativeLayout
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_below ="@id/appbar"
  android:padding="20dp"
  android:background="@color/cardview_dark_background">
   <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/displayimage"

        />
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/newMessageContainer"
        android:orientation="horizontal"
        android:foregroundGravity="bottom"

        android:layout_alignParentBottom="true"

        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:id="@+id/newMessage"
            android:focusedByDefault="false"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/editlayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:id="@+id/editlayout"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true">

            <Button
                android:id="@+id/send"
                android:text="Send"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
     </RelativeLayout>


    </RelativeLayout>

Ответы [ 3 ]

0 голосов
/ 05 мая 2019

Я думаю, вы можете использовать изображение в качестве фона для родительского макета, а затем поместить edittext внутри этого макета. Эта процедура может решить вашу проблему.

0 голосов
/ 05 мая 2019

Попробуйте сделать windowSoftInputModeflag вашей деятельности равным adjustPan или adjustNothing в файле AndroidMainfest.xml внутри тега активности.

 <activity
       .....
       android:windowSoftInputMode="adjustPan"> 
    </activity>

Programatically:

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING); 

Документация

0 голосов
/ 05 мая 2019

Вы должны предпочесть Framelayout в качестве родительского для Imageview и EditText.

Framelayout предназначен для отображения стека дочерних элементов управления View. Несколько элементов управления представления могут быть добавлены к этому макету.

Однако вы можете добавить несколько дочерних элементов в FrameLayout и управлять их положением в FrameLayout, назначая гравитацию каждому дочернему элементу, используя атрибут android: layout_gravity .

Таким образом, вы можете избежать проблемы, вызванной Softkeyboards, так как framelayout не будет удерживать относительные позиции.

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