[Android] setContentView mit ScrollViews
Sh4itan
- java
Hey Leute,
vielleicht gehört das ja nicht hier her, aber naja ;)
Mein Problem ist:
Ich habe eine ScrollView als Hauptelement, welche ein Image und einen TabHost beinhaltet.
Nun soll beim wechseln der Tabs der Content des TabHost geändert werden.
Jedem Tab ist übrigens eine eigene Activity hinterlegt und sie werden dynamisch in den Tabhost integriert.
Soweit so gut...
Das Problem jetzt ist, sobald ich über eine Activity ein xml in den Content lade, der größer ist als der Bildschirm, springt die ScrollView an und scrollt nach unten. Das soll die aber nicht machen...
Meine Frage also:
Wie kann ich verhindern, das die Scrollview nach unten scollt?
Bzw. als Mittelweg, wie kann ich herausfinden, ann der Content fertig geladen ist und wieder nach oben scrollen?
Hier meine Snippets:
1.) Seite mit ScrollView und TabHost:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:id="@+id/mainScroll"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal" >
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="800px"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="800px"
android:layout_height="200px"
android:src="@drawable/header" />
<TabWidget
android:id="@android:id/tabs"
android:layout_width="wrap_content"
android:layout_height="50px" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" />
</LinearLayout>
</TabHost>
</ScrollView>
2.) MainActivity um die Tabs zu erzeugen:
package com.eldena;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class XXXX extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources ressources = getResources();
TabHost tabHost = getTabHost();
// Login tab
Intent intentLogin = new Intent().setClass(this, LoginActivity.class);
TabSpec tabSpecLogin = tabHost
.newTabSpec("Login")
.setIndicator("", ressources.getDrawable(R.drawable.btn\_login))
.setContent(intentLogin);
// ... noch mehr Tabs blabla
tabHost.addTab(tabSpecLogin);
//und die anderen auch noch blabla
tabHost.setCurrentTab(1);
}
}
3.) Activity, um den Tab zu laden:
package com.XXXX;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ScrollView;
public class LoginActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
}
}