Как я могу разместить макет прямо над экранной клавиатурой Android?
См. прикрепленную фотографию. Twitter делает это хорошо. У них есть макет, который я буду называть панелью инструментов из-за отсутствия лучшего термина, прямо над экранной клавиатурой. Как я могу сделать это с помощью моего кода?
![enter image description here]()
UPDATE:
Вот мой макет:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff">
<RelativeLayout android:id="@+id/actionbarRelativeLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/actionbar_gradient">
<ImageButton android:id="@+id/imageButton" android:layout_width="wrap_content" android:background="@drawable/stocktwits" android:layout_height="wrap_content"></ImageButton>
<TextView android:layout_width="wrap_content" android:id="@+id/charCountTextView" android:text="140" android:layout_alignParentRight="true" android:layout_height="wrap_content" android:textColor="#ffffff" android:textStyle="bold" android:textSize="18sp" android:gravity="center_vertical" android:layout_centerVertical="true"></TextView>
</RelativeLayout>
<EditText android:layout_width="match_parent" android:id="@+id/composeEditText" android:focusable="true" android:hint="Share an idea with the community" android:gravity="left|top" android:layout_height="fill_parent" android:layout_weight="1"></EditText>
<LinearLayout android:layout_width="match_parent" android:id="@+id/border" android:background="#c4c4c4" android:baselineAligned="false" android:layout_height="1dp"></LinearLayout>
<LinearLayout android:layout_height="wrap_content" android:id="@+id/toolbarLinearLayout" android:orientation="horizontal" android:padding="5dip" android:layout_width="fill_parent" android:background="@drawable/gray_toolbar_gradient">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/shortenButton" android:background="@drawable/shortenbutton" android:layout_weight="0"></Button>
<LinearLayout android:layout_height="match_parent" android:layout_width="wrap_content" android:id="@+id/linearLayout1" android:layout_weight="1"></LinearLayout>
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/twitterCheckBox" android:textColor="#000000" android:layout_weight="0" android:background="@drawable/twittergraybutton"></CheckBox>
<Button android:layout_height="wrap_content" android:layout_weight="0" android:id="@+id/sendButton" android:layout_width="wrap_content" android:background="@drawable/sharebutton"></Button>
</LinearLayout>
</LinearLayout>
И вот мой манифест, где я указываю softInputMode:
<activity android:name="ShareActivity"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="adjustResize">
</activity>
Ответы
Ответ 1
Удостоверьтесь, что режим мягкого ввода настроен для настройкиResize, затем поместите макет на панель инструментов внизу своей деятельности.
Пример:
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout android:id="@+id/my_content"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1">
<!-- Your content here -->
</FrameLayout>
<LinearLayout android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- Your toolbar items here -->
</LinearLayout>
</LinearLayout>
Ответ 2
Это для людей, которые после настройки adjustResize все еще не работают, есть статья:
adjustResize не работает в полноэкранном режиме
У меня действительно был этот набор в полноэкранном режиме, когда моя тема вернулась к теме nonfullscreen, размеры макетов были изменены так, как вам захотелось.
Ответ 3
Важно добавление к приведенным выше ответам.
Когда вы работаете с Диалоговое окно, в полноэкранном режиме применяется неявно.
Это означает, что вам нужно:
1) установить стиль в onCreate() вашего диалогового окна:
public class YourDialogFragment extends DialogFragment {
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Holo_NoActionBar);
}
}
2), если вы используете свою собственную тему, вы должны обращаться с ней следующим образом:
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">false</item>
</style>