Toon posts:

Android XML Tab interface *

Pagina: 1
Acties:

Onderwerpen


  • anddevelop
  • Registratie: augustus 2010
  • Laatst online: 08-10-2010
Ik ben bezig met een tab interface te maken voor het android platform..
Ik heb al enkele source code toepast in mijn code alleen dit mocht niet het juiste effect hebben zoals deze:
http://groups.google.com/...e3c73b966fa4243b?lnk=raot
http://stackoverflow.com/...-of-an-android-tab-widget
Ik heb geen idee hoe ik de tab kleuren kan wijzigen,wanneer er op de tabs wordt gelikt en wanneer niet.

Graag zou ik mijn dat mijn interface er zo uit gaat zien.

JAVA
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package nl.tabwidget.;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;

public class HelloTabWidget extends TabActivity {

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Resources res = getResources(); // Resource object to get Drawables
    TabHost tabHost = getTabHost();  // The activity TabHost
    TabHost.TabSpec spec;  // Resusable TabSpec for each tab
    Intent intent;  // Reusable Intent for each tab

    // Create an Intent to launch an Activity for the tab (to be reused)
    intent = new Intent().setClass(this, ArtistsActivity.class);

    // Initialize a TabSpec for each tab and add it to the TabHost
    spec = tabHost.newTabSpec("artists").setIndicator("Artists",
                      res.getDrawable(R.drawable.tab_artists))
                  .setContent(intent);
    tabHost.addTab(spec);

    // Do the same for the other tabs
    intent = new Intent().setClass(this, AlbumsActivity.class);
    spec = tabHost.newTabSpec("albums").setIndicator("Albums",
                      res.getDrawable(R.drawable.tab_albums))
                  .setContent(intent);
    tabHost.addTab(spec);

    intent = new Intent().setClass(this, SongsActivity.class);
    spec = tabHost.newTabSpec("songs").setIndicator("Songs",
                      res.getDrawable(R.drawable.tab_songs))
                  .setContent(intent);
    tabHost.addTab(spec);

    tabHost.setCurrentTab(2);
}
}

XML
XML:
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/artists_white"
          android:state_selected="true" />
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/artists_grey" />
</selector>


Voor de mods:
Aangezien ik een specifieke vraag heb valt er weinig op Google te vinden, vandaar dat dit nog mijn enige hoop is.
Ik heb deze for lus toegepast alleen dit mocht niet het juiste effect hebben.
Java:
1
2
3
4
5
6
7
TabWidget tw = getTabWidget();

for (int i = 0; i < tw.getChildCount(); i++) {
            View v = tw.getChildAt(i);
            v.setBackgroundDrawable(getResources().getDrawable
(R.drawable.tabindicator));
          }



Iemand een oplossing voor dit probleem
Alvast heel erg bedankt ! _/-\o_

[Voor 16% gewijzigd door anddevelop op 06-10-2010 10:07]


  • Creepy
  • Registratie: juni 2001
  • Laatst online: 17:03

Creepy

Moderator Devschuur®

Tactical Espionage Splatterer

En wat heb je zelf al geprobeerd? Nog helemaal niks? En kon je ook echt helemaal niks vinden met google? Kom op, ga echt eens zelf aan de slag. Hier op GoT gaan we er vanuit dat je in eerste instantie zelf zaken probeert uit te zoeken en als dat dan niet lukt, dat je dan ook aangeeft wat je dan alleen hebt geprobeerd en wat daar niet mee lukte. Dus kan je dat alsnog aangeven?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have star problems" --Kevlin Henney


  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 22-08 18:33

BikkelZ

CMD+Z

Er is inderdaad nog bitter weinig te vinden over Android op het internet, loop er zelf ook vaak tegen aan.

iOS developer


  • anddevelop
  • Registratie: augustus 2010
  • Laatst online: 08-10-2010
Klopt er valt weinig over te vinden.. nog steeds geen idee hoe ik de tabs kan aanpassen...

Advies is welkom!

  • Brummetje
  • Registratie: december 2003
  • Niet online

Brummetje

Ginkeltjes

BikkelZ schreef op donderdag 30 september 2010 @ 09:17:
Er is inderdaad nog bitter weinig te vinden over Android op het internet, loop er zelf ook vaak tegen aan.
Er is anders genoeg te vinden over Android Programming hoor....

  • NMe
  • Registratie: februari 2004
  • Laatst online: 13:48

NMe

Quia Ego Sic Dico.

Ik neem aan dat je wel weet hoe je een klik/tap-event afvangt? Vanaf daar is het toch niet meer dan alleen kijken op welk element van je layout is geklikt (wordt aan de method meegegeven) en daarvan de resource aanpassen? Of het de meest gangbare manier is weet ik niet (ik ben zelf niet echt goed met GUI-spul in Android) maar het lost je probleem toch op?

Ik ben het ermee eens dat de bronnen voor Android-programmeren niet zo handig zijn trouwens. De reference/manual van Google zelf is heel compleet, alles staat erin....behalve bruikbare voorbeelden. En die vind je ook niet op andere sites, en als je ze vindt zijn ze vaak achterhaald. Beetje jammer als je het mij vraagt.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • YopY
  • Registratie: september 2003
  • Laatst online: 14:48
NMe schreef op vrijdag 01 oktober 2010 @ 21:44:
Ik ben het ermee eens dat de bronnen voor Android-programmeren niet zo handig zijn trouwens. De reference/manual van Google zelf is heel compleet, alles staat erin....behalve bruikbare voorbeelden. En die vind je ook niet op andere sites, en als je ze vindt zijn ze vaak achterhaald. Beetje jammer als je het mij vraagt.
Klinkt als een gat in de markt, ;D. Er zijn wel een paar dozijn blogs / tutorial sites, maar die zijn allemaal van twijfelachtige kwaliteit voor zover ik ze tot nu toe gezien heb.

  • anddevelop
  • Registratie: augustus 2010
  • Laatst online: 08-10-2010
NMe schreef op vrijdag 01 oktober 2010 @ 21:44:
Ik neem aan dat je wel weet hoe je een klik/tap-event afvangt? Vanaf daar is het toch niet meer dan alleen kijken op welk element van je layout is geklikt (wordt aan de method meegegeven) en daarvan de resource aanpassen? Of het de meest gangbare manier is weet ik niet (ik ben zelf niet echt goed met GUI-spul in Android) maar het lost je probleem toch op?
Ja dat weet ik, wat u al aangeeft is dat het niet de meest gangbare manier is.
Ik vermoed dat dit niet de oplossing is maar wel in een tip in de goede richting.

Nogmaals ik zou graag de kleuren van de tabs willen veranderen wanneer de tab selected is en deselected.
Aangezien android standaard tabinterface grijs en donkergrijs is, gaat mijn voorkeur toch uit naar een frisse interface dus.... white when selected and dark grey when deselected.

Heeft iemand voor mij een snippet (beetje op weg helpen)?

Naar mijn idee in de tab main een id meegeven naar de desbetreffende XML.. dan de vraag heeft iemand een snippet waar de tabs zoals naar mijn vraag worden weergegeven op het device.(zie afbeelding)
XML:
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/artists_white"
          android:state_selected="true" />
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/artists_grey" />
</selector>


Al het advies is welkom.

[Voor 7% gewijzigd door anddevelop op 06-10-2010 12:00]


  • Guldan
  • Registratie: juli 2002
  • Laatst online: 14-09 18:24

Guldan

Thee-Nerd

Op deze link staat toch een perfect voorbeeld om tabs werkend te krijgen en deze te veranderen
http://developer.android....iews/hello-tabwidget.html

Aangezien de selected en not selected zaken gewoon plaatjes zijn kan je deze toch gewoon aanpassen?

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


  • anddevelop
  • Registratie: augustus 2010
  • Laatst online: 08-10-2010
@Guldan

Klopt!
Dan zou ik dus de setindicator weg kunnen halen(De naam gewoon in het desbetreffende plaatje plaatsen.) en gewoon complete images gebruiken?

Naar mijn idee gaat de tab interface er dan niet uit zo uit zien aangezien er zoals op deze tabinterface ook een *line* onder de tabs is geplaatst die van kleur veranderd wanneer deze selected is en deselected.


Nogmaals alvast bedankt !

[Voor 10% gewijzigd door anddevelop op 06-10-2010 12:37]


  • bredend
  • Registratie: september 2001
  • Laatst online: 12:54
Op zich kan je de tabs zelf elke drawable geven bij elke state die je maar wil. Maar ik heb geen idee de lijn onder de tabs aan te passen is.

http://developer.android.....attr.html#tabWidgetStyle
http://developer.android....html#Theme_tabWidgetStyle
http://developer.android....urces/style-resource.html
http://developer.android.com/guide/topics/ui/themes.html

Je kan proberen om in de XML waarin de TabWidget staat een style eraan te hangen.
In res/values/styles.xml kan je dan een nieuwe style aanmaken waarin je de style van Theme.Light als parent neemt.

Let op: Al mijn reacties zijn relatief!


  • alienfruit
  • Registratie: maart 2003
  • Nu online

alienfruit

the alien you never expected

Gewoon de TabStripLeft and TapStripRight customizen. En voila.

  • bredend
  • Registratie: september 2001
  • Laatst online: 12:54
Dat kan helaas pas vanaf API Level 8, Android 2.2, FroYo.

Let op: Al mijn reacties zijn relatief!


  • anddevelop
  • Registratie: augustus 2010
  • Laatst online: 08-10-2010
Na enige tijd research te hebben uitgevoerd heb ik deze link gevonden met precies hetzelfde probleem!

Op de link is te zien dat het probleem waar ik ook mee zit is opgelost, helaas kom ik er niet precies achter hoe dit probleem is opgelost.. jullie enig idee?

Het antwoord op deze vraag is dat de <uses-sdk android:targetSdkVersion="4"/>(het gaat hier om een htc sense issue ) op 4 moet worden gezet helaas heeft dit op mijn source geen effect.. zijn de images zo grijs gemaakt of hoe is dit opgelost?

[Voor 14% gewijzigd door anddevelop op 07-10-2010 09:42]


  • alex3305
  • Registratie: januari 2004
  • Laatst online: 15-09 10:44
Nu weet ik niets van Android development, maar bij Java is het zo dat je dan de classes moet inheriten, waarnaar je diverse variabelen en methoden kunt overschrijven om zo tab/UI-elementen custom te maken.
Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee