1

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

我的活动有一个带有这种布局的选项卡式界面:

<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>

我也尝试过android:windowSoftInputMode="adjustResize"在我的 Activity 上使用和不使用清单,但我没有尝试让视图自动调整大小,以便在软键盘可见时 ScrollView 将让我滚动浏览整个内容。

我还尝试将整个活动包装在 ScrollView 中,但这弄乱了我的整个布局,因为它基于填充整个屏幕尺寸,而 ScrollView 将子布局与屏幕的实际尺寸断开连接......

有什么帮助吗?

4

1 回答 1

4

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

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

这践踏了调整视图大小的软键盘。将其注释掉,这一切都按预期工作。

于 2012-03-08T21:13:47.113 回答