23

Mam xml, którego używam przy tak wielu działaniach z plikami fragmentów, ale moim problemem jest to, że nie mogę wyświetlić tekstu, który chcę na pasku narzędzi, używam tego xml w ten sposób, ponieważ Mam szufladę nawigacji i musiałem sobie poradzić z czymś takim, więc musiałem to zrobić w ten sposób.Nazwa systemu Android nie będzie wyświetlana na pasku narzędzi.

mój 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> 

Jeden z moich działań:

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(); 
     } 
    } 
} 

jak widać próbuję ustawić tytuł na pasku akcji, ale to nie działa.

+2

Spróbuj zadzwonić 'getSupportActionBar() setDisplayShowTitleEnabled (true)' 'następnie toolbar.setTitle (tytuł) ' –

+0

@NikolaDespotoski Próbowałem, że to nie działa. – bitek

Odpowiedz

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

Dla mnie działa to bez tego na Androidzie 5.1.1 tzn. Tylko z getSupportActionBar(). SetTitle tytuł na pasku narzędzi jest ustawiony, ale jeśli spróbuję ustawić tytuł bezpośrednio z paska narzędziowego, to nie, tylko przez getSupportActionBar () – bitek

0

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

lub jeśli używasz AppCompat bibliotek;

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

8

Spróbuj .. ta metoda działa dla mnie .. !! mam nadzieję, że to pomoże komuś .. !!

<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

Można również użyć tego.

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

w ten sposób wydaje się, jak funkcja getSupportActionBar() jest skrócony – Pievis

+0

tak, ale nie getSupportActionBar() nie działa dla mnie, dla niektórych gorszych przypadkach używam tego, .. –

17

Ustawianie,

app:title="@string/my_title" 

w deklaracji The android.support.v7.widget.Toolbar, Hard Kody tytule na pasku narzędzi.

Aby ustawić tytuł programowo,

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

w swojej klasie aktywności.

+2

Dlaczego do diabła robi "Android: tytuł" nie rzucić niektórych rodzaj błędu ?! –

+0

TAK, że poprawiłeś :) Thnx człowiek zapomniałem dodać tę linię :) –

+0

@ Danielililek ponieważ google –

0

Zrobiłem niestandardowy pasek akcji.

Układ iguepardos_action_bar.xml z tym kodem

<?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> 

w mojej klasie rozszerzonego AppCompatActivity miałem to:.

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 

}