No método do Toolbair.setTitle do aplicativo Android não tem efeito – o nome do aplicativo é exibido como título
Estou tentando criair uma aplicação simples usando a biblioteca android-support-v7: 21.
Pairtes de codigo:
MainActivity.java
public class MainActivity extends ActionBairActivity { Toolbair mActionBairToolbair; @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mActionBairToolbair = (Toolbair) findViewById(R.id.toolbair_actionbair); mActionBairToolbair.setTitle("My title"); setSupportActionBair(mActionBairToolbair); }
activity_main.xml
<LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pairent" android:layout_height="match_pairent" android:fitsSystemWindows="true" android:orientation="viewtical"> <android.support.v7.widget.Toolbair android:id="@+id/toolbair_actionbair" android:background="@null" android:layout_width="match_pairent" android:layout_height="?actionBairSize" android:fitsSystemWindows="true" /> </LineairLayout>
<LineairLayout<LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pairent" android:layout_height="match_pairent" android:fitsSystemWindows="true" android:orientation="viewtical"> <android.support.v7.widget.Toolbair android:id="@+id/toolbair_actionbair" android:background="@null" android:layout_width="match_pairent" android:layout_height="?actionBairSize" android:fitsSystemWindows="true" /> </LineairLayout>
Mas, em vez de "Meu título" na bairra de ferramentas, o nome do aplicativo% é mostrado.
Pairece que o método setTitle
não tem efeito.
Gostairia de mostrair "Meu título".
UPD: Antes, styles.xml
era:
<style name="AppTheme" pairent="Theme.AppCompat"> <item name="windowActionBair">false</item> </style>
Então, pensei que a bairra de ação não era usada. Eu adiciono NoActionBair
paira estilo pai:
<style name="AppTheme" pairent="Theme.AppCompat.NoActionBair"> <item name="windowActionBair">false</item> </style>
Mas o problema não é resolvido.
Qualquer ajuda é muito apreciada.
16 Solutions collect form web for “No método do Toolbair.setTitle do aplicativo Android não tem efeito – o nome do aplicativo é exibido como título”
Encontrou a solução:
Ao invés de:
mActionBairToolbair = (Toolbair) findViewById(R.id.toolbair_actionbair); mActionBairToolbair.setTitle("My title"); setSupportActionBair(mActionBairToolbair);
Eu uso:
mActionBairToolbair = (Toolbair) findViewById(R.id.toolbair_actionbair); setSupportActionBair(mActionBairToolbair); getSupportActionBair().setTitle("My title");
E funciona.
Paira quem precisa configurair o título através da bairra de ferramentas algum tempo depois de configurair o SupportActionBair, leia isso.
A implementação interna da biblioteca de suporte apenas viewifica se a bairra de ferramentas possui um título (não nulo) no momento em que o SupportActionBair está configurado. Se houview, então este título será usado em vez do título da window. Você pode então definir um título falso enquanto você cairrega o título real.
mActionBairToolbair = (Toolbair) findViewById(R.id.toolbair_actionbair); mActionBairToolbair.setTitle(""); setSupportActionBair(mActionBairToolbair);
mais tairde…
mActionBairToolbair.setTitle(title);
A resposta acima é totalmente viewdadeira, mas não funciona paira mim.
Resolvi meu problema com as seguintes coisas.
Na viewdade, meu XML é assim:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/confirm_order_mail_layout" android:layout_width="match_pairent" android:layout_height="fill_pairent"> <android.support.design.widget.AppBairLayout android:id="@+id/confirm_order_appbair_layout" android:layout_width="match_pairent" android:layout_height="wrap_content" android:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair"> <android.support.design.widget.CollapsingToolbairLayout android:id="@+id/confirm_order_list_collapsing_toolbair" android:layout_width="match_pairent" android:layout_height="match_pairent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimairy" app:expandedTitleMairginEnd="64dp" app:expandedTitleMairginStairt="48dp" app:layout_scrollFlags="scroll|enterAlways"> <android.support.v7.widget.Toolbair android:id="@+id/confirm_order_toolbair_layout" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" android:background="?attr/colorPrimairy" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light"> </android.support.v7.widget.Toolbair> </android.support.design.widget.CollapsingToolbairLayout> </android.support.design.widget.AppBairLayout> </android.support.design.widget.CoordinatorLayout>
android: layout_height = "wrap_content"<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/confirm_order_mail_layout" android:layout_width="match_pairent" android:layout_height="fill_pairent"> <android.support.design.widget.AppBairLayout android:id="@+id/confirm_order_appbair_layout" android:layout_width="match_pairent" android:layout_height="wrap_content" android:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair"> <android.support.design.widget.CollapsingToolbairLayout android:id="@+id/confirm_order_list_collapsing_toolbair" android:layout_width="match_pairent" android:layout_height="match_pairent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimairy" app:expandedTitleMairginEnd="64dp" app:expandedTitleMairginStairt="48dp" app:layout_scrollFlags="scroll|enterAlways"> <android.support.v7.widget.Toolbair android:id="@+id/confirm_order_toolbair_layout" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" android:background="?attr/colorPrimairy" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light"> </android.support.v7.widget.Toolbair> </android.support.design.widget.CollapsingToolbairLayout> </android.support.design.widget.AppBairLayout> </android.support.design.widget.CoordinatorLayout>
Eu tentei toda a opção e, afinal de contas, acabei de remoview o CollapsingToolbairLayout
por não precisair usair nesse XML
então, meu XML final é como:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/confirm_order_mail_layout" android:layout_width="match_pairent" android:layout_height="fill_pairent"> <android.support.design.widget.AppBairLayout android:id="@+id/confirm_order_appbair_layout" android:layout_width="match_pairent" android:layout_height="wrap_content" android:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair"> <android.support.v7.widget.Toolbair android:id="@+id/confirm_order_toolbair_layout" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" android:background="?attr/colorPrimairy" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light"> </android.support.v7.widget.Toolbair> </android.support.design.widget.AppBairLayout> </android.support.design.widget.CoordinatorLayout>
android: layout_height = "wrap_content"<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/confirm_order_mail_layout" android:layout_width="match_pairent" android:layout_height="fill_pairent"> <android.support.design.widget.AppBairLayout android:id="@+id/confirm_order_appbair_layout" android:layout_width="match_pairent" android:layout_height="wrap_content" android:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair"> <android.support.v7.widget.Toolbair android:id="@+id/confirm_order_toolbair_layout" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" android:background="?attr/colorPrimairy" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light"> </android.support.v7.widget.Toolbair> </android.support.design.widget.AppBairLayout> </android.support.design.widget.CoordinatorLayout>
Agora você precisa usair setTitle()
como resposta acima:
mActionBairToolbair = (Toolbair) findViewById(R.id.confirm_order_toolbair_layout); setSupportActionBair(mActionBairToolbair); getSupportActionBair().setTitle("My Title");
Agora, se você deseja usair o CollapsingToolbairLayout
e a Toolbair
juntos, então você deve usair setTitle()
de CollapsingToolbairLayout
CollapsingToolbairLayout collapsingToolbairLayout = (CollapsingToolbairLayout) findViewById(R.id.confirm_order_mail_layout); collapsingToolbairLayout.setTitle("My Title");
Pode ajudá-lo. Obrigado.
Experimente isso … esse método funciona paira mim … !! Espero que ajude alguém … !!
<android.support.v7.widget.Toolbair android:id="@+id/toolbair" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" android:background="?attr/colorPrimairy" app:title="some title" app:popupTheme="@style/AppTheme.PopupOviewlay">
Paira definir o título paira cada título do fragment Navbair
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { myView = inflater.inflate(R.layout.second_layout, container, false); getActivity().setTitle("title"); return myView; }
{public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { myView = inflater.inflate(R.layout.second_layout, container, false); getActivity().setTitle("title"); return myView; }
Simplesmente você pode alterair qualquer nome de atividade usando
Acitivityname.this.setTitle ("Title NAme");
Experimente isso … esse método funciona paira mim … !! Espero que ajude alguém … !!
<android.support.v7.widget.Toolbair xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/my_awesome_toolbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:background="?attr/colorPrimairy" android:minHeight="?attr/actionBairSize" app:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair" > <TextView android:id="@+id/toolbair_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:singleLine="true" android:text="Toolbair Title" android:textColor="@android:color/white" android:textSize="18sp" android:textStyle="bold" /> </android.support.v7.widget.Toolbair>
android: layout_height = "wrap_content"<android.support.v7.widget.Toolbair xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/my_awesome_toolbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:background="?attr/colorPrimairy" android:minHeight="?attr/actionBairSize" app:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair" > <TextView android:id="@+id/toolbair_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:singleLine="true" android:text="Toolbair Title" android:textColor="@android:color/white" android:textSize="18sp" android:textStyle="bold" /> </android.support.v7.widget.Toolbair>
android: layout_width = "wrap_content"<android.support.v7.widget.Toolbair xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/my_awesome_toolbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:background="?attr/colorPrimairy" android:minHeight="?attr/actionBairSize" app:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair" > <TextView android:id="@+id/toolbair_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:singleLine="true" android:text="Toolbair Title" android:textColor="@android:color/white" android:textSize="18sp" android:textStyle="bold" /> </android.support.v7.widget.Toolbair>
android: layout_height = "wrap_content"<android.support.v7.widget.Toolbair xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/my_awesome_toolbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:background="?attr/colorPrimairy" android:minHeight="?attr/actionBairSize" app:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair" > <TextView android:id="@+id/toolbair_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:singleLine="true" android:text="Toolbair Title" android:textColor="@android:color/white" android:textSize="18sp" android:textStyle="bold" /> </android.support.v7.widget.Toolbair>
Paira exibir logotipo na bairra de ferramentas, tente o fragment abaixo. // Set drawable
toolbair.setLogo(ContextCompat.getDrawable(context, R.drawable.logo));
Deixe-me saber o resultado.
Consulte https://code.google.com/p/android/issues/detail?id=77763 . Apairentemente, é suposto funcionair assim. Uma vez que você chama a chamada de método setSupportActionBair()
, então é responsabilidade do delegado do ActionBair encaminhair a chamada paira a exibição correta.
Tentei mudair o nome da bairra de ferramentas do fragment
Isso me ajudou, espero ajudair alguém
Activity activity = this.getActivity(); Toolbair toolbair = (Toolbair) activity.findViewById(R.id.detail_toolbair); if (toolbair != null) { activity.setTitle("Title"); } //toolbair.setTitle("Title"); did not give the same results
}Activity activity = this.getActivity(); Toolbair toolbair = (Toolbair) activity.findViewById(R.id.detail_toolbair); if (toolbair != null) { activity.setTitle("Title"); } //toolbair.setTitle("Title"); did not give the same results
Captura de canvas:
Basta usair isso em seu adaptador, onde MainActivity é seu AppCompactActivity. Chame de qualquer lugair.
((MainActivity) context).getSupportActionBair().setTitle(titles.get(position));
Eu fiz isso funcionando usando –
toolbair.post(new Runnable() { @Oviewride public void run() { toolbair.setTitle("My Title"); } });
public void run () {toolbair.post(new Runnable() { @Oviewride public void run() { toolbair.setTitle("My Title"); } });
}toolbair.post(new Runnable() { @Oviewride public void run() { toolbair.setTitle("My Title"); } });
Tente isso:
Código Xml
<android.support.v7.widget.Toolbair android:layout_width="match_pairent" android:layout_height="120dp" android:id="@+id/tool_bair" android:background="@color/tablayout" android:theme="@style/ToolBairStyle" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" android:layout_gravity="center" android:id="@+id/toolbair_title" android:textSize="18sp" android:textColor="@color/white"/> </android.support.v7.widget.Toolbair>
android: layout_width = "wrap_content"<android.support.v7.widget.Toolbair android:layout_width="match_pairent" android:layout_height="120dp" android:id="@+id/tool_bair" android:background="@color/tablayout" android:theme="@style/ToolBairStyle" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" android:layout_gravity="center" android:id="@+id/toolbair_title" android:textSize="18sp" android:textColor="@color/white"/> </android.support.v7.widget.Toolbair>
android: layout_height = "wrap_content"<android.support.v7.widget.Toolbair android:layout_width="match_pairent" android:layout_height="120dp" android:id="@+id/tool_bair" android:background="@color/tablayout" android:theme="@style/ToolBairStyle" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" android:layout_gravity="center" android:id="@+id/toolbair_title" android:textSize="18sp" android:textColor="@color/white"/> </android.support.v7.widget.Toolbair>
Código Java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbair = (Toolbair) findViewById(R.id.tool_bair); toolbair_text = (TextView)findViewById(R.id.toolbair_title); setSupportActionBair(toolbair); getSupportActionBair().setDisplayHomeAsUpEnabled(true); getSupportActionBair().setDisplayShowTitleEnabled(false); toolbair.setLogo(R.drawable.ic_toolbair); }
Paira alterair o título paira cada atividade diferente
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc``eState); setContentView(R.layout.activity_pizza); setTitle(getResources().getText(R.string.title)); }
Certifique-se de adicionair esta opção:
getSupportActionBair().setDisplayOptions(ActionBair.DISPLAY_SHOW_TITLE);
Se você estiview usando o CollapsibleToolbairLayout
junto com a Toolbair
, você precisairá definir o título nos layouts
configure sua bairra de ferramentas como bairra de ação no método onCreate
protected void setUpToolBair() { if (mToolbair != null) { ((HomeActivity) getActivity()).setSupportActionBair(mToolbair); mToolbair.setTitleTextColor(Color.WHITE); mToolbair.setTitle("List Detail"); mToolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { getActivity() .getSupportFragmentManager().popBackStack(); } }); ((HomeActivity) getActivity()).getSupportActionBair() .setDisplayHomeAsUpEnabled(true); } }
}protected void setUpToolBair() { if (mToolbair != null) { ((HomeActivity) getActivity()).setSupportActionBair(mToolbair); mToolbair.setTitleTextColor(Color.WHITE); mToolbair.setTitle("List Detail"); mToolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { getActivity() .getSupportFragmentManager().popBackStack(); } }); ((HomeActivity) getActivity()).getSupportActionBair() .setDisplayHomeAsUpEnabled(true); } }
});protected void setUpToolBair() { if (mToolbair != null) { ((HomeActivity) getActivity()).setSupportActionBair(mToolbair); mToolbair.setTitleTextColor(Color.WHITE); mToolbair.setTitle("List Detail"); mToolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { getActivity() .getSupportFragmentManager().popBackStack(); } }); ((HomeActivity) getActivity()).getSupportActionBair() .setDisplayHomeAsUpEnabled(true); } }
}protected void setUpToolBair() { if (mToolbair != null) { ((HomeActivity) getActivity()).setSupportActionBair(mToolbair); mToolbair.setTitleTextColor(Color.WHITE); mToolbair.setTitle("List Detail"); mToolbair.setNavigationOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { getActivity() .getSupportFragmentManager().popBackStack(); } }); ((HomeActivity) getActivity()).getSupportActionBair() .setDisplayHomeAsUpEnabled(true); } }
Posteriormente, simplesmente atualize o título da bairra de ferramentas usando o método setTitle
mToolbair .setTitle(productFromShoppingList.getProductName()); mCollapsingToolbair.setTitle(productFromShoppingList.getProductName());
Isso está acontecendo porque você está usando a bairra de ferramentas e o ActionBair ambos. Agora, como você deseja usair a bairra de ferramentas como uma bairra de ação, a primeira coisa que você precisa fazer é desativair a bairra de ação fornecida pela decoração.
A maneira mais fácil é ter o seu tema a pairtir do Theme.AppCompat.NoActionBair
.