У меня есть простой макет с:Android - Компоновка Top Bar выталкивается, когда клавиша клавиатуры отображается
- верхней панели (например, панель действий) с сохранить и кнопку назад
- и ниже в целях прокрутки с некоторыми
EditText
внутри ... (проверьте изображение ниже),
Когда я называю клавиатуры, на мой взгляд, это нажать выше ... Я хотел бы мой Top Bar, чтобы остаться всегда видимы и закреплены на верхней ... (проверьте ниже изображение того, что происходит, и то, что я хотел бы случиться)
Я попробовал несколько решений с android:windowSoftInputMode
, положив верхнюю планку в качестве относительного расположения и установить isScrollContainer
в scrollview
, но никто из них не работал для меня ...
код ниже:
<RelativeLayout
android:id="@+id/llWriteCommentWall"
style="@style/TextSubSeparator"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
style="@style/TextSubSeparator"
android:layout_marginBottom="@dimen/margin_separator_bottom"
android:layout_alignParentTop="true">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="left|center_horizontal|center_vertical"
android:orientation="horizontal"
android:layout_marginTop="@dimen/margin_title_top"
android:layout_marginBottom="@dimen/margin_title_bottom"
android:layout_marginLeft="@dimen/margin_title_left"
android:layout_marginRight="@dimen/margin_title_right"
>
<ImageView
android:id="@+id/ivMainMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/tk_btn_home"
android:onClick="clickHome"/>
</LinearLayout>
<TextView
android:id="@+id/tvSeconHeader"
android:text="@string/title"
android:layout_width="match_parent"
android:layout_weight="2.5"
android:layout_height="match_parent"
android:gravity="center"
style="@style/TextTileHealth"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="right|center_horizontal"
android:orientation="horizontal"
android:layout_marginTop="@dimen/margin_title_top"
android:layout_marginBottom="@dimen/margin_title_bottom"
android:layout_marginLeft="@dimen/margin_title_left"
android:layout_marginRight="@dimen/margin_title_right">
<ImageView
android:id="@+id/ivSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/tk_btn_tab_save"
android:onClick="clickSave"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:isScrollContainer="false">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_separator_bottom"
android:gravity="center">
<!-- EditBoxes -->
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:id="@+id/et1"
style="@style/TextEditBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:digits="."
android:inputType="numberDecimal"
android:maxLength="3"
android:layout_weight="0.33"
android:gravity="center"
android:ems="3"
android:layout_marginBottom="10dp"/>
<EditText
android:id="@+id/et2"
style="@style/TextEditBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:digits="."
android:inputType="numberDecimal"
android:maxLength="3"
android:layout_weight="0.33"
android:gravity="center"
android:ems="3"
android:layout_marginBottom="10dp"/>
<EditText
android:id="@+id/et3"
style="@style/TextEditBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:digits="."
android:inputType="numberDecimal"
android:maxLength="3"
android:layout_weight="0.33"
android:gravity="center"
android:ems="3"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
и Manifest:
<activity
android:name="com.example.slyzer.gui.new.NewValue"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize"
android:screenOrientation="portrait">
</activity>
EDIT:
Недавно я узнать, что, когда вы кладете свою деятельность в качестве Full Screen:
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
, окна начинает действовать отличается от обычного: https://code.google.com/p/android/issues/detail?id=5497&q=fullscreen&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars
и как описано Dianne Hackborn в here, вот как он работает, и кажется, что нет никакой заинтересованности в его изменении.
Итак, я попробовал Joseph Johnson's AndroidBug5497Workaround, но я всегда в конечном итоге с «дополнительной» пустой бар выше моей клавиатуре, и вид стали не показывает, как я хочу, чтобы ...
Кто-нибудь есть хорошее/простое решение этой проблемы?
для вас первое предложение, это не работает для меня. Для второго, это может быть хорошей идеей ... Я мог бы установить 'android: windowSoftInputMode =" adjustNothing "', а затем установить 'ScrollView' для позиции, которую я хочу ... Легко изменить положение' ScrollView' для определенной позиции в представлении? – slyzer
Стоит попробовать, чтобы scrollview изменил высоту на 'wrap_content', поскольку он не должен быть того же размера, что и родительский. –