Autore Topic: Android Layout Gravity  (Letto 2086 volte)

Offline thebelfastboy

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: +3
    • Mostra profilo
Android Layout Gravity
« il: 29 Giugno 2011, 13:35:02 CEST »
0
Come faccio a settare la posizione dei pulsanti in una table layout? Ho settato il layout gravity ma non funziona

Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal">
        <TableLayout android:layout_height="wrap_content"
                     android:layout_width="fill_parent"
                     android:orientation="horizontal">
                <TableRow android:layout_height="wrap_content"
                      android:layout_width="wrap_content">
                        <Button android:id="@+id/prev"
                                android:text="prev"
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content"
                                android:layout_gravity="left"/>
                    <Button android:id="@+id/next"
                                android:text="next"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="right"/>    
            </TableRow>
                        <TableRow>
                                <TextView android:text="Panino 1"
                                  android:id="@+id/twnomePanino"       
                                  android:layout_width="wrap_content"
                              android:layout_height="wrap_content"
                              android:layout_gravity="right"/>
                        </TableRow>
                       
                        <TableRow>
                           
                        </TableRow>
         </TableLayout>
</RelativeLayout>

soluzioni?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Android Layout Gravity
« Risposta #1 il: 29 Giugno 2011, 13:41:37 CEST »
0
Ti serve per forza usare un TableLayout nestato dentro un RelativeLayout, oppure sono l'effetto collaterale dei tuoi tentativi?

Un modo di rendere la vita molto più facile a chi risponde sarebbe disegnare in qualche modo (anche a mano su un foglio e poi lo fotografi col cellulare) uno schemino del layout che vuoi ottenere, perchè ti assicuro dal codice che non funziona può essere molto difficile capire come la persona vorrebbe che funzionasse.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline sergio

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend
Re:Android Layout Gravity
« Risposta #2 il: 14 Luglio 2011, 13:01:27 CEST »
0
non riesco a far andare su due righe due textview appartenenti alla stessa row?
Sapreste come fare?
l'attributo gravity non sembra funzionare....

Grazie anticipatamente

Offline sergio

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend
Re:Android Layout Gravity
« Risposta #3 il: 14 Luglio 2011, 13:02:34 CEST »
0
ah dimenticavo: il mio tablelayout non ha un padre.

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Android Layout Gravity
« Risposta #4 il: 14 Luglio 2011, 13:09:00 CEST »
+1
la prossima volta fai un edit del primo post, senza farne 2 consecutivi.

grazie.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 585
  • Respect: +132
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Android Layout Gravity
« Risposta #5 il: 15 Luglio 2011, 09:36:15 CEST »
0
Scusate il tono polemico, ma mi sembra di stare sulla settimana enigmistica.

Quando fate una richiesta cercate di mettervi nei panni di chi non ha idea di cosa avete in testa. Già è difficile trovare una soluzione, se dobbiamo cercare anche la domanda stiamo freschi.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Android Layout Gravity
« Risposta #6 il: 15 Luglio 2011, 09:43:19 CEST »
0
Scusate il tono polemico, ma mi sembra di stare sulla settimana enigmistica.

Quando fate una richiesta cercate di mettervi nei panni di chi non ha idea di cosa avete in testa. Già è difficile trovare una soluzione, se dobbiamo cercare anche la domanda stiamo freschi.

Ohmnibus ha ragione. Avrei tutta la voglia di dare un suggerimento, ma faccio fatica a capire cosa serve. Con un disegno, anche fatto a mano, si toglie qualsiasi dubbio.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline sergio

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend
Re:Android Layout Gravity
« Risposta #7 il: 15 Luglio 2011, 10:17:18 CEST »
0


chiedo venia per la mia poca chiarezza e vi ringrazio per la risposta.

l'immagine rappresenta la riga di una mia tablelayout, vorrei che textview2 venga visualizzata sotto textview1 e non a destra.
ho usato l'attributo android:gravity="left" per cercare di avere questo effetto.
ecco il codice xml che uso:
Codice (XML): [Seleziona]
<ScrollView
        android:id="@+id/ScrollView01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android">
       
        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:stretchColumns="1">

    <TableRow android:id="@+id/guasto1_1" android:background="#ffd700" android:orientation="vertical">
        <TextView
                android:text="textview1"
                android:textStyle="bold"
                android:textSize="22sp"
                android:textColor="#000000"
           android:layout_column="1"
           android:padding="3dip" />
        <TextView android:gravity="left"
           android:text="textview2"
           android:textColor="#000000"
           android:padding="3dip" />
    </TableRow>
....


Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 585
  • Respect: +132
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Android Layout Gravity
« Risposta #8 il: 15 Luglio 2011, 10:37:40 CEST »
+1
Prova:

Codice (XML): [Seleziona]
<ScrollView
       android:id="@+id/ScrollView01"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       xmlns:android="http://schemas.android.com/apk/res/android">
       
        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:stretchColumns="1">

    <TableRow android:id="@+id/guasto1_1" android:background="#ffd700" android:orientation="vertical">
       <LinearLayout android:orientation="vertical">
        <TextView
               android:text="textview1"
               android:textStyle="bold"
               android:textSize="22sp"
               android:textColor="#000000"
          android:layout_column="1"
          android:padding="3dip" />
        <TextView
          android:text="textview2"
          android:textColor="#000000"
          android:padding="3dip" />
        </LinearLayout>
    </TableRow>
....
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline sergio

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend
Re:Android Layout Gravity
« Risposta #9 il: 15 Luglio 2011, 11:05:44 CEST »
0
grazie Ohm, sì funziona.

Offline sergio

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend
Re:Android Layout Gravity
« Risposta #10 il: 18 Luglio 2011, 16:27:45 CEST »
0
il mio scopo è avere un background color diverso per ogni tablerow al tocco della stessa.
Non riesco ad intercettare però i messaggi di ACTION_UP e ACTION_MOVE, ma solo l'ACTION_DOWN, quindi posso cambiare il colore ad esempio in green ma non posso poi tornare al mio black.

Non riesco a capire perchè. C'è una soluzione?
Grazie anticipatamente.

Ecco un pezzo di codice (Non avviene mai il changing to black):

Codice (Java): [Seleziona]
chiudiRow.setOnTouchListener(new OnTouchListener() {
                       
                        @Override
                        public boolean onTouch(View v, MotionEvent arg1) {
                                switch(arg1.getAction())
                {
                    case MotionEvent.ACTION_DOWN:
                        Log.d("OnTouch", "Changing to GREEN");
                                        chiudiRow.setBackgroundColor(greenYellowColor);

                        break;
                    case MotionEvent.ACTION_UP:
                    case MotionEvent.ACTION_MOVE:
                        Log.d("OnTouch", "Changing to BLACK");
                        chiudiRow.setBackgroundColor(Color.BLACK);
                        break;
                   default:
                           break;
                       
                }

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 585
  • Respect: +132
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Android Layout Gravity
« Risposta #11 il: 18 Luglio 2011, 16:37:42 CEST »
+1

Hai provato utilizzando uno ColorStateList? Ti permette di definire un colore per ogni stato della View senza scrivere una riga di codice.

Riferimento: Color State List Resource
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline sergio

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend
Re:Android Layout Gravity
« Risposta #12 il: 18 Luglio 2011, 17:12:54 CEST »
0
grazie, è molto utile. Però devo cambiare colore al background della mia tablerow e non al testo contenuto in esso.
Il selector funziona nel primo caso (cambio colore della mia textview) ma se provo ad applicarlo al mio attributo
Codice (XML): [Seleziona]
android:background="@color/button_text"
della tablerow
Codice (XML): [Seleziona]
<TableRow android:id="@+id/ElencoGuasti" android:orientation="vertical" android:layout_margin="1dip" android:padding="10dip" android:background="@color/button_text">
ottengo questa eccezione:
07-18 18:05:29.205: ERROR/AndroidRuntime(571): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.com.mockupferrovie/it.com.mockupferrovie.activity.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class android.widget.TableRow

dovrei non usare + le tablerow?


Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 585
  • Respect: +132
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Android Layout Gravity
« Risposta #13 il: 18 Luglio 2011, 22:17:07 CEST »
+1
Hai ragione, il ColorStateList non è supportato per gli sfondi.

Prova con un StateListDrawable. Il concetto è lo stesso, ma invece di un colore usi un Drawable.

State List

Considera che puoi utilizzare degli Shape Drawable che ti evitano di creare delle immagini con i colori desiderati.

Esempio (con colori a caso):
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true">
                <shape android:shape="rectangle">
                        <solid android:color="#FFF0F0F0" />
                </shape>
        </item>
        <item android:state_focused="true">
                <shape android:shape="rectangle">
                        <solid android:color="#FFF0F0F0" />
                </shape>
        </item>
        <item>
                <shape android:shape="rectangle">
                        <solid android:color="#FF0F0F0F" />
                </shape>
        </item>
</selector>
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline sergio

  • Nuovo arrivato
  • *
  • Post: 26
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend
Re:Android Layout Gravity
« Risposta #14 il: 19 Luglio 2011, 11:13:15 CEST »
0
grazie Ohm, ma purtroppo non sembra funzionare (sbaglio qualcosa!?)

il mio selector si chiama button.xml ed è così:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
       
        <item android:state_pressed="true">
                <shape android:shape="rectangle">
                        <solid android:color="#7fff00" />
                </shape>
        </item>
       
        <item android:state_focused="true">
                <shape android:shape="rectangle">
                        <solid android:color="#7fff00" />
                </shape>
        </item>
        <item android:state_pressed="false">
                <shape android:shape="rectangle">
                        <solid android:color="#000000" />
                </shape>
        </item>
        <item android:state_focused="false">
                <shape android:shape="rectangle">
                        <solid android:color="#000000" />
                </shape>
        </item>
</selector>



e viene richiamato così:
Codice (XML): [Seleziona]
...
<TableRow android:id="@+id/chiudi" android:orientation="vertical" android:layout_margin="1dip" android:padding="10dip" android:background="@drawable/button">
...


il risultato è che il colore di background non cambia...
 :'(