Reputation: 6606
Im having a problem where the android scrollview starts hiding a pair of textviews I have at the top of my layout, I have found another person on this very site who had that problem and was able to get help unfortunately the person who helped them didnt actually say what fixes it, can anyone tell me what was the fix here?
android scrollview hiding top content
any help would be huge here is my xml code:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/title_color_dark_transparent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|center_horizontal|center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:paddingTop="5dp" >
<TextView
android:id="@+id/saysomething"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/loading"
android:textColor="#FFFFFF"
android:textSize="30dp" />
<TextView
android:id="@+id/saysomethinginfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="@string/loading"
android:textColor="#FFFFFF"
android:textSize="17dp" />
<EditText
android:id="@+id/tweetedittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/edit_text"
android:gravity="top"
android:hint="@string/edittext_hint"
android:inputType="textCapSentences|textMultiLine|textAutoCorrect|textAutoComplete"
android:lines="3"
android:textAppearance="@style/TextAppearance.EditText"
android:textSize="17dp" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:orientation="horizontal" >
<Button
android:id="@+id/photobutton"
style="@style/TextAppearance.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_background"
android:onClick="photobuttonClicked"
android:text="@string/photobuttontext"
android:textSize="15dp" />
<TextView
android:id="@+id/charactersremaining"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:layout_toLeftOf="@+id/posttweetbutton"
android:text="@string/characters"
android:textColor="#FFFFFF"
android:textSize="20dp" />
<Button
android:id="@id/posttweetbutton"
style="@style/TextAppearance.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="2dp"
android:background="@drawable/button_background"
android:onClick="posttweetbuttonClicked"
android:text="@string/postbuttonstext"
android:textSize="15dp" />
</RelativeLayout>
</LinearLayout>
<TextView
android:id="@+id/photodetails"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="#FFFFFF"
android:textSize="17dp"
android:layout_marginTop="8dp"
android:layout_marginLeft="8dp" />
<ImageView
android:id="@+id/iv_pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp" />
</LinearLayout>
</ScrollView>
Upvotes: 39
Views: 26049
Reputation: 43
You can scroll programmatically.
Some code from my project:
protected void onResume() {
super.onResume();
final HorizontalScrollView svInMenu = (HorizontalScrollView) findViewById(R.id.svInMenu);
ViewTreeObserver vto = svInMenu.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
svInMenu.scrollTo(svInMenu.getRight() / 4, 0);
}
});
}
Upvotes: 2
Reputation: 5254
Have you tried setting
android:fillViewport="true"
in the ScrollView?
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:background="@color/title_color_dark_transparent" >
Upvotes: 9
Reputation: 1553
Found it !
It's the android:layout_gravity="center"
in the LinearLayout
that is the culprit. Just delete this and everything should be fine.
Upvotes: 115
Reputation: 2237
Add android:layout_weight="1" to your scrollview. It will resolve the problem. Something like this
<ScrollView
android:id="@+id/scroll"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_weight="1" >
Upvotes: 0
Reputation: 36302
Your outer LinearLayout
has its height set to match_parent
. It should be wrap_content
instead. The inner LinearLayout
should also have height wrap_content
.
Upvotes: 0