Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ScrollView切断顶部,在底部留出空间_Android_Xml_Scrollview - Fatal编程技术网

Android ScrollView切断顶部,在底部留出空间

Android ScrollView切断顶部,在底部留出空间,android,xml,scrollview,Android,Xml,Scrollview,当我启动emulator并进入使用此代码的屏幕时,它会显示大部分文本信息,但会切断屏幕顶部(无法向上滚动),但在底部留下一点空间 这是代码 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibi

当我启动emulator并进入使用此代码的屏幕时,它会显示大部分文本信息,但会切断屏幕顶部(无法向上滚动),但在底部留下一点空间

这是代码

    <ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:visibility="visible"
    android:fillViewport="true"
    android:id="@+id/backgroundImage" >

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:padding="10dip" >

     <ImageView
        android:id="@+id/earthSymbolImageView"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:src="@drawable/earthsymbol" />

     <TextView
        android:id="@+id/earth_content1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/earth_title"
        android:gravity="center" 
        android:textColor="#FFFFFF"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/earth_content2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/earth_text" 
        android:textColor="#FFFFFF" />

    <Button
        android:id="@+id/backButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/back" />

     </LinearLayout>
    </ScrollView>


有人知道为什么会发生这种情况吗?

如果希望文本视图可以滚动,为什么不在这两个元素周围放置滚动视图

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:padding="10dip" >


    <ScrollView>
     <ImageView
        android:id="@+id/earthSymbolImageView"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:src="@drawable/earthsymbol" />

     <TextView
        android:id="@+id/earth_content1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/earth_title"
        android:gravity="center" 
        android:textColor="#FFFFFF"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/earth_content2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/earth_text" 
        android:textColor="#FFFFFF" />

     </ScrollView>

    <Button
        android:id="@+id/backButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/back" />



     </LinearLayout>

嵌套在
滚动视图中的
水平滚动视图
也有同样的问题。
我将
水平滚动视图
重力设置为
中心
,这是导致问题的原因。只需移除它就解决了问题

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

<HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center">

    <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        <TextView
                android:layout_width="1000dp"
                android:layout_height="1000dp"
                android:gravity="center"
                android:layout_gravity="center"
                android:text="New Text"/>
    </LinearLayout>
</HorizontalScrollView>

这是由于线性布局中的布局重力引起的。由于线性布局在ScrollView中,您可能只是尝试水平居中(在ScrollView中垂直居中不会产生任何效果)。像这样将线性布局指定为水平居中应该可以做到:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center_horizontal"
    android:padding="10dip" >

在我的例子中,问题是
EditText
requestFocus


在您的情况下,他们的编辑文本是no
EditText
,因此问题是其他的。对于那些有scrollview切割顶部边缘问题的人,请尝试从所有
EditText
中删除所有
requestFocus
,这非常简单-您只需将布局从LinearLayout移动到父容器scrollview中:

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:visibility="visible"
    android:fillViewport="true"
    android:id="@+id/backgroundImage" 
    android:layout_gravity="center" >

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dip" >

我找到并测试的解决此问题的最佳答案是@hadi在这个问题中给出的答案:

恢复答复:

  • 将您的ScrollView放在RelativeLayout中
  • 在ScrollView中,设置以下内容:
    • android:layout\u height=“包装内容”
    • android:layout\u centerVertical=“true”
  • 将垂直线布局放在滚动视图内
守则是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            ...

        </LinearLayout>
    </ScrollView>
</RelativeLayout>

...
您必须在LinearLayout中添加marginBottom



从Horizontalscroll视图内的线性/相对布局中删除布局\u重力,它会起作用。

如果可能,上传带有问题的屏幕截图。您是否尝试删除此android:padding=“10dip”并使用android:margin=“10dip”来完成此操作?尝试删除
android:fillViewport=“true”
在滚动视图中选择一行,然后选中,左边的图片显示了屏幕的底部,右边的图片显示了顶部。我已经解决了这个问题,解决方案是将ScrollView仅放在TextView的周围。您错过了ScrollView的属性-加上ScrollView的属性不能超过direct Decedent。即使您没有使用嵌套的ScrollView,这也可以工作。我在scrollview中有一个线性布局,这对我很有用。我也有同样的问题。。我在ScrollView内部的LinearLayout中使用了android:layout\u gravity=“center\u vertical”。同样的事情。线性布局居中,而不是水平居中。谢谢D这应该是公认的答案。谢谢你,我想我会发疯,当我尝试数千个属性组合时为什么在滚动视图中垂直居中没有意义?当我的应用程序处于纵向模式时,一切正常,一切可见。我的ScrollView由带有登录表单的CardView(或FrameLayout等)组成。当应用程序处于纵向模式且所有链接都可见时,我希望表单垂直居中。另一方面,当应用程序处于横向模式时,CardView不适合屏幕,所以我希望它滚动。
android:layout\u gravity=“center\u horizontal”
刚刚对我起作用。这种方式似乎没有考虑内部视图的底部边距。但从现在起,我发现它最接近完美。最佳答案:)拯救了我的一天
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:visibility="visible"
android:fillViewport="true"
android:id="@+id/backgroundImage" >

 <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center"
android:padding="10dip"
android:layout_marginBottom="96dp" >    

 <ImageView
    android:id="@+id/earthSymbolImageView"
    android:layout_width="25dp"
    android:layout_height="25dp"
    android:src="@drawable/earthsymbol" />

 <TextView
    android:id="@+id/earth_content1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/earth_title"
    android:gravity="center" 
    android:textColor="#FFFFFF"
    android:textSize="20sp" />

<TextView
    android:id="@+id/earth_content2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/earth_text" 
    android:textColor="#FFFFFF" />

<Button
    android:id="@+id/backButton"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/back" />

 </LinearLayout>
</ScrollView>