当我启动模拟器并进入使用此代码的屏幕时,它会显示大部分文本信息,但会切断屏幕顶部(无法向上滚动),但会在底部留下一些空间。
这是代码;
<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>
有谁知道为什么会这样?
答案 0 :(得分:31)
这是由于LinearLayout中的layout_gravity引起的。由于您的LinearLayout位于ScrollView内部,因此您可能只是尝试水平居中(因此ScrollView内部垂直居中)。将LinearLayout指定为像这样水平居中应该可以解决问题:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:padding="10dip" >
答案 1 :(得分:24)
HorizontalScrollView
嵌套在ScrollView.
内我的HorizontalScrollView
重力设置为center
导致了问题,我遇到了同样的问题。只是删除它修复了问题。
<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>
答案 2 :(得分:1)
非常简单 - 你只需要将layout_gravity从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" >
答案 3 :(得分:0)
就我而言,问题是requestFocus
的{{1}}。
在你的情况下,他们不是EditText
所以问题是其他问题。对于滚动视图问题会削减上边缘的用户,请尝试从所有EditText
中删除所有requestFocus
。
答案 4 :(得分:0)
您必须在LinearLayout中添加marginBottom
<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>
答案 5 :(得分:0)
从Horizontalscroll视图内的“线性/相对”布局中删除layout_gravity,即可使用。
答案 6 :(得分:-3)
如果您希望TextViews可滚动,为什么不将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>