Eigener Header in TabActivity

G

gurkenprinz

Neues Mitglied
0
Hallo Leute!

Weiß jemand wie ich einer TabActivity einen selbst erstellten Header zuweise, welcher dann idealerweise über den Tabs platziert ist. Der Header sollte aus Text und einer Hintergrundgrafik bestehen.

Habe es bereits auf die Art probiert in der onCreate methode aber leider wird mir dann nur der normale graue AppHead Header angezeigt ohne Text.

Code:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.header);
Hat jemand eine Idee wie ich das hinkriegen kann ?

Besten Dank !
lg gurkenprinz
 
Also ohne groß rumzubasteln kannst du der grauen Titelbar zumindest einen Text und ein Icon (Bild) zuweisen..
 
Danke für die Antwort aber leider reicht das nicht. Die graue Titlebar soll kein Icon enthalten sondern komplett durch eine Grafik ersetzt werden.
 
Dann wirst du wohl die Titlebar ausblenden und stattdessen eine eigene View einblenden lassen müssen.
 
schon klar ...
und wie stelle ich das an wenn diese eigene View über den Tabs stehen soll ?

In der TabActivity sind ja die Tabs standardmäßig ganz oben. Wenn ich eine eigene View einbinde ist diese unter den Tabs platziert.
 
Den Tabhost per xml laden, diesen in ein LinearLayout wrappen und darüber eine View packen? Also zuerst die View in das Layout hinzufügen und dann den Tabhost... oder gleich so im xml definieren.
:confused:
 
Fr4gg0r schrieb:
Den Tabhost per xml laden, diesen in ein LinearLayout wrappen und darüber eine View packen? Also zuerst die View in das Layout hinzufügen und dann den Tabhost... oder gleich so im xml definieren.
:confused:

wäre das leben nicht zu einfach, wenn es immer so einfach wäre? :p

bzw: ich mag xml nicht :p ich würds im code machen ;D
 
dann erzeug ein LinearLayout im Code, dieses nimmt zuerst dein im Code erzeugte CustomView und dand dein im Code erzeugte TabHost auf?
Hierbei müsstest du wohl von Activity erben.. müsste aber so auch möglich sein Tabs zu erzeugen, schließlich kann ich bei einer normalen Activity auch auf Tabs per xml zugreifen.
 
Hätte es jetzt mal so probiert:

Code:
public class Portal extends Activity 
{
    public void onCreate(Bundle savedInstanceState) 
    {
        
        super.onCreate(savedInstanceState);
        this.setFullscreen();
        LinearLayout ll = new LinearLayout(this);
        ImageView header = new ImageView(this);
        header.setBackgroundResource(R.drawable.header);
        ll.addView(header);
        TabHost tabHost = new TabHost(this);
        ll.addView(tabHost);
        
        tabHost.addTab(tabHost.newTabSpec("Aktuell")  //--> in dieser Zeile NullpointerException :(
                .setIndicator("Aktuell")
                .setContent(new Intent(this,Portal_News.class)));
        tabHost.addTab(tabHost.newTabSpec("Favoriten")
                .setIndicator("Favoriten")
                .setContent(new Intent(this,Portal_Favoriten.class)));
        tabHost.addTab(tabHost.newTabSpec("Kanäle")
                .setIndicator("Kanäle")
                .setContent(new Intent(this,Portal_Kanaele.class)));
        
    }
}
Leider gibts eine NullPointerException wenn ich zum ersten mal einen Tab hinzufügen will. Und dabei ist egal ob ich von Activity oder TabActivity erbe.

Dann hab ich es noch auf die Methode probiert:

Code:
public class Portal extends TabActivity 
{
    public void onCreate(Bundle savedInstanceState) 
    {
        
        super.onCreate(savedInstanceState);
        this.setFullscreen();
        LinearLayout ll = new LinearLayout(this);
        ImageView header = new ImageView(this);
        header.setBackgroundResource(R.drawable.header);
        ll.addView(header);
        TabHost tabHost = this.getTabHost();
        ll.addView(tabHost);   //--> The specified child already has a Parent
        
        tabHost.addTab(tabHost.newTabSpec("Aktuell")
                .setIndicator("Aktuell")
                .setContent(new Intent(this,Portal_News.class)));
        tabHost.addTab(tabHost.newTabSpec("Favoriten")
                .setIndicator("Favoriten")
                .setContent(new Intent(this,Portal_Favoriten.class)));
        tabHost.addTab(tabHost.newTabSpec("Kanäle")
                .setIndicator("Kanäle")
                .setContent(new Intent(this,Portal_Kanaele.class)));
        
    }
Hier schmeißt er mir in der gekennzeichneten Zeile eine IllegalStateException mit der angegebenen Beschreibung.
 
Zuletzt bearbeitet:

Ähnliche Themen

FabianDev
Antworten
5
Aufrufe
555
swa00
swa00
R
  • RudolfHagen
Antworten
1
Aufrufe
651
koje71
koje71
R
Antworten
3
Aufrufe
1.618
Ritartet
R
Zurück
Oben Unten