滚动

时间:2016-02-08 08:02:08

标签: android scrollview android-softkeyboard

我的情况是我需要一个滚动视图才能有一个背景图像,在移动时不应该与它的父母一起滚动。在你们任何人建议我设置背景图片的链接之前,我已经尝试了它并没有工作。

整个故事就像:我有一个活动,片段有自己的背景和一些输入字段。当聚焦在输入字段上时,会出现键盘并挤压背景图像。为此,我在scrollview的背景上放置了一个图像,修复了我的挤压背景问题,但又提出了另一个问题,即在滚动父卷轴视图时背景图像应保持静态。

你们可能建议的第二个解决方案是设置我的活动背景,而不是使用scrollview。这是正确的,但是为了那个我必须制作一个主题背景的样式元素,当转换不同的片段时它看起来很奇怪,当我有大量的代码和片段向前和向后移动时,它会增加开销。

这就是我陷入困境的地步。如果您只是需要知道我是否尝试过,我已经浏览了下面的链接。

link1 link2 link3 ......等等

下面是我用于片段的布局(所有这些都是以编程方式完成的)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/top_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:scrollbars="none" >

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/backgroundView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="@string/app_name"
            android:scaleType="fitXY" />

        <LinearLayout
            android:id="@+id/parent_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </LinearLayout>
    </FrameLayout>
</ScrollView>
</LinearLayout>

因此,如果您有任何更好的解决方案,请记住我的情况,将受到热烈欢迎。谢谢

3 个答案:

答案 0 :(得分:3)

上述所有内容对我来说都不是有原因的,但这一切都有效。

getWindow().setBackgroundDrawableResource(R.mipmap.img_reg_bg);

把它放在oncreate方法中希望它会有所帮助。

答案 1 :(得分:1)

如果我猜对了,请尝试修复您的修补程序以使其正常工作。如果我是对的,你应该回头去做,不用滚动视图。

如果您查看以下链接: http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

你会看到软键盘模式可以调整。 “adjustPan”应该可以解决您的问题。

  

“adjustPan”

     

活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。

答案 2 :(得分:0)

为您的可绘制内容添加一些内容,例如drawable-mdpidrawable-hdpi。 在LinearLayout&#34; @ + id / top_layout&#34;添加属性:

android:background="@drawable/someimage"