23

У меня есть xml, который я использую с таким количеством действий с файлом фрагментов, но моя проблема в том, что я не могу отобразить текст, который я хочу на панели инструментов, я использую этот xml таким образом, потому что У меня есть ящик для навигации, и мне нужно было справиться с чем-то, поэтому я должен был сделать это таким образом.название андроида не отображается в панели инструментов

мой 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> 

Одна из моих работ:

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

, как вы можете видеть, что я пытаюсь установить заголовок панели действий, но он не работает.

+2

Попробуйте вызвать 'getSupportActionBar() setDisplayShowTitleEnabled (истина)' 'то toolbar.setTitle (название) ' –

+0

@NikolaDespotoski Пробовал, что он не работает. – bitek

ответ

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

Для меня это работает без этого на Android 5.1.1, т. Е. Только с getSupportActionBar(). SetTitle заголовок внутри панели инструментов установлен, но если я попытаюсь установить заголовок непосредственно из ссылки на панели инструментов, это не так, только через getSupportActionBar () – bitek

0

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

или если вы используете AppCompat библиотеки;

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

8

Попробуйте это .. этот метод работает для меня .. !! надеюсь, что это может помочь кому-то .. !!

<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

Вы можете также использовать это.

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

, делая это похоже на getSupportActionBar() функциональность сокращается – Pievis

+0

да, но не getSupportActionBar() не работает для меня, для некоторых худших случаев я использую это, .. –

17

Установка,

app:title="@string/my_title" 

в декларации android.support.v7.widget.Toolbar, жесткие коды титул на панели инструментов.

Чтобы установить заголовок программно,

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

в классе деятельности.

+2

Почему, черт возьми, 'android: title' не бросать вид ошибки ?! –

+0

ДА Вы правильно :) Thnx Man Я забыл добавить эту строку :) –

+0

@ DanielWilson, потому что Google –

0

Я сделал пользовательскую панель действий.

Layout iguepardos_action_bar.xml с этим кодом

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

В моем классе расширенной AppCompatActivity я имел это:.

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 

} 
Смежные вопросы