1

Единственное, что я пытаюсь сделать, это то, что наверху будет editText, после чего появится ImageView. Теперь в нижней строке появятся некоторые кнопки (например, emojis), и эта нижняя часть будет выдвигаться только мягкой клавиатурой всякий раз, когда она появится.Нажмите только нижнюю часть вверх, когда появится мягкая клавиатура

Я делаю это более понятным, прикрепляя этот макет Facebook. required output

Я прошел через все эти вопросы и попробовал их ответы, но не повезло. Может быть, я делаю что-то неправильно.

Android: Resize only parts of view with soft keyboard on screen

Android: How do I prevent the soft keyboard from pushing my view up?

android : How to prevent resizing the window when displaying the virtual keyboard

Мой XML код

<ScrollView 
    android:id="@+id/scrollOnPost" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:isScrollContainer="false" 
    android:fillViewport="true" 
    android:layout_below="@+id/header_layout"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:weightSum="4" 
    android:layout_gravity="bottom" 
    android:gravity="bottom"> 
<EditText 
      android:id="@+id/ed_post" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 
<ImageView 
     android:id="@+id/img_posted_list_row" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="2.7" 
     android:adjustViewBounds="true" 
     android:src="@mipmap/ic_launcher" 
     android:scaleType="fitCenter" 
     android:background="@color/red"/> 

</LinearLayout> 
</ScrollView> 

<ImageButton 
    android:id="@+id/imgBtn_Emoji" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_alignParentBottom="true" 
    android:src="@drawable/smile_face" 
    android:background="@drawable/button_pressed_white" 
    /> 

Все, что я получаю, что моя экранная клавиатура всегда выводила макет вверх не только смайликами на дне. Благодарю.

+0

см. Ссылку, которая может вам помочь: http://stackoverflow.com/questions/17410499/difference-between-adjustresize-and-adjustpan-in-android –

+0

Спасибо за ссылку Kunal. Я попробовал как «adjustResize», «adjustPan», так и обе вместе в манифесте, но результат не то, что мне нужно. Но вопрос точно такой же, что и у меня. еще раз спасибо. –

+0

@ Md. Asaduzzaman Noor il попробуйте добавить свой макет в свой код и с каким решением я смогу найти –

ответ

0

Чувак он работал манифеста:

<activity android:name=".TestActivity" 
     android:windowSoftInputMode="adjustResize"/> 

XML:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView android:id="@+id/scrollOnPost" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:isScrollContainer="false" 
android:fillViewport="true" 
android:layout_below="@+id/header_layout" 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:weightSum="4" 
    android:layout_gravity="bottom" 
    android:gravity="bottom"> 
    <EditText 
     android:id="@+id/ed_post" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
    <ImageView 
     android:id="@+id/img_posted_list_row" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="2.7" 
     android:adjustViewBounds="true" 
     android:scaleType="fitCenter" 
     android:background="@color/colorPrimary"/> 
    <ImageButton 
     android:id="@+id/imgBtn_Emoji" 
     android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_alignParentBottom="true" 
     android:src="@mipmap/call" 
     /> 
</LinearLayout> 

Я предполагаю, что вы хотите только EditText нажать, когда клавиатура видна (Поправьте меня, если я неправильно) для этого у меня есть идея, я не знаю, будет ли это работать или нет, вы можете попробовать, если найдете это логичным

Идея заключается в том, чтобы сначала проверить, видима ли клавиатура или нет, а во-вторых, если видно, ее высота и программно дают вашему макету marginBottom, который будет равен высоте клавиатуры (с использованием layoutParams).

проверить это ссылки для реализации выше идеи:

How to capture the "virtual keyboard show/hide" event in Android?

Is there any way in android to get the height of virtual keyboard of device

How to set RelativeLayout layout params in code not in xml

before clicking edit text

after clicking edit text

+0

Спасибо, что вы попытались помочь @Kunal, но его не работает. Пожалуйста, ознакомьтесь с прилагаемым изображением и попытайтесь четко понять мое требование. –

+0

Спасибо за предложение Kunal, но я давно понял эту идею и тоже попробовал это. Но это не работает отлично для всех устройств, и, конечно же, это не лучшая практика. Я просто хочу знать то же самое, что и в Facebook. это оно. –

+0

ОК в этом случае я из идей –

Смежные вопросы