我有一个简单的布局:
EditText
...(查看下图),
当我打电话给键盘时,我的视线就在上面......我希望我的顶栏能够始终保持可见并固定在顶部...(查看下面的图像,了解正在发生的事情以及我希望发生什么)
我使用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="0123456789."
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="0123456789."
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="0123456789."
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>
编辑:
我最近发现,当您将活动设为全屏时:
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
并且正如Dianne Hackborn在here中所描述的那样,这就是它的工作原理,似乎没有兴趣改变它。
所以,我尝试了Joseph Johnson's AndroidBug5497Workaround,但我的键盘上面总是有一个“额外”的空白条,而View钢并没有像我想要的那样显示......
有没有人对此问题有一个很好/简单的解决方案?
答案 0 :(得分:0)
android:windowSoftInputMode="adjustResize"
会将顶部栏保留在视图中,并调整滚动视图的大小以使用剩余的空间。
我能看到的唯一问题就是在调整文本大小调整之后将其与可视区域对齐(如果需要)
答案 1 :(得分:0)
将其添加到清单中的活动代码:
android:windowSoftInputMode="adjustPan"
或以编程方式:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);