Domanda

Al momento solo visualizza il nome dell'applicazione e voglio che venga visualizzato qualcosa di personalizzato e sarà diverso per ogni schermo nella mia app.

Ad esempio:. La mia schermata iniziale potrebbe dire 'page1' nella barra delle operazioni, mentre un'altra attività che l'applicazione passa alla potrebbe avere 'page2' in quel bar schermi azione

È stato utile?

Soluzione

Aggiornamento: Ultimo ActionBar (Titolo) modello:

Cordiali saluti, ActionBar è stato introdotto nel API Livello 11. ActionBar è una caratteristica finestra nella parte superiore della attività che possono visualizzare il titolo attività , modalità di navigazione e altri elementi interattivi come ricerca.

I esattamente ricordo sulla personalizzazione barra del titolo e lo rende coerente attraverso l'applicazione. Così posso fare un confronto con i giorni precedenti e posso elencare alcuni dei vantaggi di utilizzare ActionBar:

  1. e offre agli utenti un'interfaccia familiare tra le applicazioni che il sistema con grazia adatta per le configurazioni dello schermo diversa.
  2. Gli sviluppatori non hanno bisogno di scrivere molto codice per la visualizzazione del titolo di attività, le icone e le modalità di navigazione a causa ActionBar è già pronto con l'astrazione di livello superiore.

Ad esempio:

entrare descrizione dell'immagine qui

entrare descrizione dell'immagine qui

=> modo normale,

getActionBar().setTitle("Hello world App");   
getSupportActionBar().setTitle("Hello world App");  // provide compatibility to all the versions

=> Personalizzazione barra delle azioni,

Ad esempio:

@Override
public void setActionBar(String heading) {
    // TODO Auto-generated method stub

    com.actionbarsherlock.app.ActionBar actionBar = getSupportActionBar();
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.title_bar_gray)));
    actionBar.setTitle(heading);
    actionBar.show();

}

Styling barra delle operazioni:

L'ActionBar si offre con un look di base e familiari, modalità di navigazione e altre azioni rapide da eseguire. Ma questo non significa che sembra lo stesso in ogni app. È possibile personalizzare secondo le vostre esigenze di interfaccia utente e di design. Non vi resta che definire e stili di scrittura e temi.

Per saperne di più: Styling barra delle operazioni

E se si desidera generare stili per ActionBar allora questo Style Generator strumento può aiutarti.

=============================================== ==================================

Vecchi: All'inizio di giorni:

=> modo normale,

È possibile modificare il titolo di ogni schermata (cioè di attività) impostando il Android:label

   <activity android:name=".Hello_World"
                  android:label="This is the Hello World Application">
   </activity>

=> Custom - Titolo - bar


Ma se si desidera personalizzare barra del titolo nel proprio modo, vale a dire Want to put Image icon and custom-text , quindi i seguenti lavori di codice per me:

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

titlebar.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="400dp" 
  android:layout_height="fill_parent"
  android:orientation="horizontal">

<ImageView android:id="@+id/ImageView01" 
            android:layout_width="57dp" 
            android:layout_height="wrap_content"
            android:background="@drawable/icon1"/>

<TextView 

  android:id="@+id/myTitle" 
  android:text="This is my new title" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  android:textColor="@color/titletextcolor"
   />
</LinearLayout>

TitleBar.java

public class TitleBar extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final boolean customTitleSupported = 
                requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main);
        if (customTitleSupported) {
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                R.layout.titlebar);
        }
        final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
        if (myTitleText != null) {
            myTitleText.setText("NEW TITLE");
            // user can also set color using "Color" and then
            // "Color value constant"
            // myTitleText.setBackgroundColor(Color.GREEN);
        }
    }
}

strings.xml

Il file strings.xml viene definito sotto il la cartella values.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, Set_Text_TitleBar!</string>
    <string name="app_name">Set_Text_TitleBar</string>
    <color name="titlebackgroundcolor">#3232CD</color>
    <color name="titletextcolor">#FFFF00</color>
</resources>

Altri suggerimenti

È possibile definire l'etichetta per ogni attività nel file manifest.

Un normale definizione di un aspetto di attività in questo modo:

<activity
     android:name=".ui.myactivity"
     android:label="@string/Title Text" />

Dove testo del titolo dovrebbe essere sostituito da l'id di una risorsa di stringa per questa attività.

È anche possibile impostare il testo del titolo dal codice se si desidera impostare in modo dinamico.

setTitle(address.getCity());

con questa linea il titolo è impostato per la città di uno specifico indirizzo nel metodo OnCreate della mia attività.

È possibile definire il titolo programatically utilizzando setTitle all'interno Activity, questo metodo può accettare sia un String o un ID definito nel file values/strings.xml. Esempio:

public class YourActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        setTitle(R.string.your_title);
        setContentView(R.layout.main);

    }
}

Si può cambiare il titolo ActionBar in uno dei due modi:

  1. Nel Manifesto:. Nel file manifesto, impostare l'etichetta di ogni attività

    android:label="@string/TitleWhichYouWantToDisplay"
    
  2. In codice:. Nel codice, chiamare il metodo setTitle () con una stringa o l'id stringa come argomento

    public class MainActivity extends Activity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
    
            setTitle(R.string.TitleWhichYouWantToDisplay);
            // OR You can also use the line below
            // setTitle("MyTitle")
            setContentView(R.layout.activity_main);
    
        }
    }
    

All'interno Activity.onCreate () richiamata o in un altro luogo in cui è necessario cambiare titolo:

getSupportActionBar().setTitle("Whatever title");

provare fare questo ...

public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
    this.setTitle(String.format(your_format_string, your_personal_text_to_display));
    setContentView(R.layout.your_layout);
       ...
       ...
}

funziona per me

po 'più vecchio, ma aveva lo stesso problema. L'ho fatto in questo modo:

strings.xml

<string name="title_awesome_app">My Awesome App</string>

e assicuratevi di impostare questo nel vostro AndroidManifest.xml :

<activity
            ...
            android:label="@string/title_awesome_app" >
            ...
</activity>

E 'facile e non deve preoccuparsi di nulli riferimenti e altre cose.

getActionBar().setTitle("edit your text"); 

Il modo più semplice per cambiare il nome barra delle operazioni è quello di andare al AndroidManifest.xml e digitare il codice.

<activity android:name=".MainActivity"
    android:label="Your Label> </activity>

È sufficiente aggiungere questo codice nel metodo onCreate.

setTitle("new title");
ActionBar ab = getActionBar();
TextView tv = new TextView(getApplicationContext());

LayoutParams lp = new RelativeLayout.LayoutParams(
        LayoutParams.MATCH_PARENT, // Width of TextView
        LayoutParams.WRAP_CONTENT);
tv.setLayoutParams(lp);
tv.setTextColor(Color.RED);
ab.setCustomView(tv);

Per ulteriori informazioni consulta questo link:

http: // android--code.blogspot.in/2015/09/android-how-to-change-actionbar-title_21.html

Il modo migliore per cambiare il nome barra delle operazioni è quello di andare al AndroidManifest.xml e digitare il codice.

<activity android:name=".YourActivity"
        android:label="NameYouWantToDisplay> </activity>

Il modo più semplice è quello di chiamare this.setTitle("...") se si è in attività. E se siete in un frammento, basta chiamare getActivity().setTitle("...");

In questo modo vi permetterà di modificare in qualsiasi momento il titolo, non c'è bisogno di chiamare prima setContentView(R.layout.activity_test);

Per gli sviluppatori futuri che utilizzano AndroidX e Navigazione componente architettonico .

Invece di impostare il titolo della barra degli strumenti utilizzando una delle soluzioni di cui sopra, che può essere molto doloroso se si desidera impostare dinamicamente su un cambiamento pila di nuovo, è possibile impostare un segnaposto per il titolo del frammento nella navigazione grafico come il seguente:

<fragment
    android:id="@+id/some_fragment"
    android:name="package.SomeFragment"
    android:label="Hello {placeholder}"
    tools:layout="@layout/fragment_some">
    <argument
        android:name="placeholder"
        app:argType="string" />
</fragment>

Il valore segnaposto deve essere fornita usando l'FragmentDirections (tramite il metodo d'azione).

E 'poi sostituito nel titolo e show come Hello World (quando placeholder = "World").

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top