Android软键盘没有调整我的视图大小

时间:2012-03-07 19:52:22

标签: android android-layout android-virtual-keyboard

我知道有一千个关于此的问题,但我已经浏览过这些问题,他们的解决方案都没有为我工作。

我的活动有一个带有这种布局的标签式界面:

<RelativeLayout>
    <LinearLayout tabBar>
        <Button tab1 />
        <Button tab2 />
        <Button tab3 />
        <Button tab4 />
    </LinearLayout>
    <ViewFlipper>
        <fragment Tab1 />
        <fragment Tab2 />
        <fragment Tab3 />
        <fragment Tab4 />
    </ViewFlipper>
</RelativeLayout>

当在LinearLayout中点击tab2按钮时,我将ViewFlipper更改为显示由Tab2Fragment控制的子2。

Tab2Fragment的布局如下所示:

<FrameLayout>
    <ListView/>
</FrameLayout>

当选择ListView中的项目时,我创建一个新片段,让我们称之为Sub2Fragment,然后将其作为子项添加到FrameLayout。

Sub2Fragment有这样的布局:

<LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent">
    <LinearLayout> <TextView /> <EditText /> </LinearLayout>
    <LinearLayout> <TextView /> <EditText /> </LinearLayout>
    <LinearLayout> <TextView /> <EditText /> </LinearLayout>
    <LinearLayout> <TextView /> <EditText /> </LinearLayout>
    <Button />
</LinearLayout>

当显示软键盘时,它覆盖了我的一些EditTexts和我的按钮。我也尝试用ScrollView包装LinearLayout:

<ScrollView android:layout_height="fill_parent" android:layout_width="fill_parent">
    <LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent">
        <LinearLayout> <TextView /> <EditText /> </LinearLayout>
        <LinearLayout> <TextView /> <EditText /> </LinearLayout>
        <LinearLayout> <TextView /> <EditText /> </LinearLayout>
        <LinearLayout> <TextView /> <EditText /> </LinearLayout>
        <Button />
    </LinearLayout>
</ScrollView>

我也在我的Activity上尝试使用android:windowSoftInputMode="adjustResize"我的清单,但是我尝试的任何东西都不会让视图自动调整大小,以便当软键盘可见时ScrollView会让我滚动浏览整个内容

我还尝试将整个活动包装在ScrollView中,但是这会弄乱我的整个布局,因为它基于填充整个屏幕大小,而ScrollView会断开子布局与屏幕的实际大小... / p>

任何帮助?

1 个答案:

答案 0 :(得分:4)

我发现了问题...我想摆脱顶级状态栏,所以我将其添加到我的活动中:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

踩踏软键盘调整视图大小。评论出来并且一切都按预期工作。