23

Ho un XML che uso con così tante attività con file di frammenti ma il mio problema è che non riesco a visualizzare il testo che voglio nella barra degli strumenti, io uso quel xml in questo modo perché Ho un cassetto di navigazione e avevo bisogno di maneggiare qualcosa, quindi ho dovuto farlo in quel modo.Titolo Android non verrà visualizzato nella barra degli strumenti

mio xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/frame_container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".StatusActivity" 
    android:orientation="vertical" > 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     style="@style/ToolBarStyle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     android:minHeight="@dimen/abc_action_bar_default_height_material" /> 

</RelativeLayout> 

Una delle mie attività:

public class GroupChatActivity extends ActionBarActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_base_layout); 

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayShowHomeEnabled(true); 

     ActionBar actionBar = getSupportActionBar(); 
     actionBar.setTitle("Groups history"); 

     Aniways.init(this); 

     if(savedInstanceState == null) 
     { 
      FragmentManager manager = getSupportFragmentManager(); 

      Fragment fragment = GroupChatFragment.newInstance(getIntent().getIntExtra("uid", 0)); 
      manager.beginTransaction().add(R.id.frame_container, fragment).commit(); 
     } 
    } 
} 

come si può vedere che cerco di impostare il titolo alla barra delle azioni, ma non funziona.

+2

Prova a chiamare 'getSupportActionBar() setDisplayShowTitleEnabled (true)' 'poi toolbar.setTitle (titolo) ' –

+0

@NikolaDespotoski Ho provato che non funziona. – bitek

risposta

32
getSupportActionBar().setDisplayShowTitleEnabled(true); 
+1

Per me funziona senza questo su Android 5.1.1 cioè con solo getSupportActionBar(). SetTitle il titolo all'interno della barra degli strumenti è impostato, ma se provo a impostare il titolo direttamente dalla barra degli strumenti di riferimento non lo fa, solo tramite getSupportActionBar () – bitek

2

Prova toolbar.setTitle('Groups history');

0

getActionBar().setTitle("Groups History");

o se si utilizza AppCompat biblioteche;

getSupportActionBar().setTitle("Groups History");

8

Prova questo .. questo metodo funziona per me .. !! spero che possa aiutare qualcuno .. !!

<android.support.v7.widget.Toolbar 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/my_awesome_toolbar" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="?attr/colorPrimary" 
android:minHeight="?attr/actionBarSize" 
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" > 

<TextView 
    android:id="@+id/toolbar_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:singleLine="true" 
    android:text="Toolbar Title" 
    android:textColor="@android:color/white" 
    android:textSize="18sp" 
    android:textStyle="bold" /> 

</android.support.v7.widget.Toolbar> 

EDIT

È anche possibile utilizzare questo.

setSupportActionBar(toolbar); 
if (getSupportActionBar() != null) 
     getSupportActionBar().setTitle("Toolbar title"); 
+0

in questo modo sembra che la funzionalità getSupportActionBar() sia interrotta – Pievis

+0

sì, ma non getSupportActionBar() non funziona per me, per alcuni casi peggiori lo uso, .. –

17

Setting,

app:title="@string/my_title" 

all'interno della dichiarazione del l'android.support.v7.widget.Toolbar, codici duri il documento nella barra degli strumenti.

per impostare il titolo programmatico,

Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar); 
toolbar.setTitle("my title"); 
setSupportActionBar(toolbar); 

nella classe di attività.

+2

Perché diavolo 'android: title' non getta un po ' tipo di errore ?! –

+0

SI correggi :) thnx man ho dimenticato di aggiungere questa riga :) –

+0

@DanielWilson perché google –

0

Ho fatto una barra delle azioni personalizzata.

iguepardos_action_bar.xml layout con questo codice

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:local="http://schemas.android.com/apk/res-auto" 
android:id="@+id/toolbar" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@color/blanco" 
android:minHeight="?attr/actionBarSize"> 

    <TextView 
    android:id="@+id/toolbar_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="left" 
    android:singleLine="true" 
    android:text="Toolbar Title" 
    android:textColor="@color/naranja" 
    android:textSize="18sp" /> 

</android.support.v7.widget.Toolbar> 

nella mia classe AppCompatActivity esteso ho avuto questo:.

protected void onCreate(Bundle savedInstanceState) { 
.... 
.... 

getSupportActionBar().setDisplayShowCustomEnabled(true); // is for specify use custom bar 
getSupportActionBar().setCustomView(R.layout.iguepardos_action_bar); // my custom layout 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); // Button for come back 

View mCustomView = getSupportActionBar().getCustomView(); // Set the view 
TextView TitleToolBar = (TextView) mCustomView.findViewById(R.id.toolbar_title); // find title control 
TitleToolBar.setText("The Title Show"); // Set the Title 

}