Android 使用片段更改ActionBar标题 我正在使用Actionbar 我有一个片段调用Favorites,其中我将一些联系人保存为Favorites 当你点击一个联系人时,它会将我带到另一个片段,并将联系人号码放在编辑文本上 新的片段是呼叫转移
因此,我的问题是,当用户单击联系人时,会将我带到另一个片段,但操作栏上的标题仍然是最喜欢的标题,而不是新标题,如何更改该标题 我已尝试在单击方法上使用Android 使用片段更改ActionBar标题 我正在使用Actionbar 我有一个片段调用Favorites,其中我将一些联系人保存为Favorites 当你点击一个联系人时,它会将我带到另一个片段,并将联系人号码放在编辑文本上 新的片段是呼叫转移,android,android-fragments,android-actionbar,Android,Android Fragments,Android Actionbar,因此,我的问题是,当用户单击联系人时,会将我带到另一个片段,但操作栏上的标题仍然是最喜欢的标题,而不是新标题,如何更改该标题 我已尝试在单击方法上使用setTitle,但仍不起作用。在您的活动中: public void setActionBarTitle(String title) { getSupportActionBar().setTitle(title); } 在片段中(您可以将其放在创建或恢复中): 在你的片段中 public View onCreateView(Layout
setTitle
,但仍不起作用。在您的活动中:
public void setActionBarTitle(String title) {
getSupportActionBar().setTitle(title);
}
在片段中(您可以将其放在创建或恢复中):
在你的片段中
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
getActivity().setTitle("Team B");
View rootView = inflater.inflate(R.layout.fragment_team_b, container, false);
return rootView;
}
如果您使用的是Android Jetpack的导航组件。操作栏读取片段名称的Label属性。不确定这是否是正确的修复,但如果您在导航编辑器中更改标签文本,它将由托管片段的活动中设置的supportActionBar读取。Em Kotlin vocêpode usar o seguinte código nas funções:onCreateView,onStart e onResume
override fun onStart() {
super.onStart()
(activity as? AppCompatActivity)?.supportActionBar?.title = "Título".
}
如果你喜欢的话,你可以把它放在一个片段中
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
fun Fragment.setTitle(title: String) {
(activity as? AppCompatActivity)?.supportActionBar?.title = title
}
class StartFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_start, container, false)
}
override fun onStart() {
super.onStart()
this.setTitle(getString(R.string.titulo))
}
}
Chamada da função de extensão dentro do Fragment
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
fun Fragment.setTitle(title: String) {
(activity as? AppCompatActivity)?.supportActionBar?.title = title
}
class StartFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_start, container, false)
}
override fun onStart() {
super.onStart()
this.setTitle(getString(R.string.titulo))
}
}
程序员的答案不是正确的,但是当你回到上一个活动或片段时,标题保持不变 这是我的解决方案
- 重写片段中的OnPause()或OnStopMethod,您可以使用相同的方法“((MainFragmentActivity)getActivity()).setActionBarTitle(“您的标题”);”设置Backbackback中存在的活动或片段的标题
更改工具栏标题的步骤
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
((MainActivity) getActivity()).getSupportActionBar().setTitle("hello word");
View root = inflater.inflate(R.layout.fragment_home, container, false);
return root;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
很好的示例我没有意识到onResume可以覆盖我的标题它更改得很好,但是它在更改后保存到所有片段如果我要更改片段,它应该更改,因为我在BottomNavigationViewEx上有片段,它不适用于更改片段查看此链接我们可以使用jetpack更改操作栏的字体吗?