LayoutInflater inflator = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.custom_titlebar, null);
TextView tv = (TextView) v.findViewById(R.id.title);
Typeface tf = Typeface.createFromAsset(this.getAssets(),
"fonts/capsuula.ttf");
tv.setTypeface(tf);
tv.setText(this.getTitle());
actionBar.setCustomView(v);
((MainFragmentActivity) getActivity()).getSupportActionBar().setTitle(
catTitle);
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:ellipsize="end"
android:maxLines="1"
android:text=""
android:textColor="#fff"
android:textSize="25sp" />
</RelativeLayout>
你所做的是正确的。片段
不能访问ActionBar
API,因此必须调用GetActivity
。除非您的片段
是静态内部类,在这种情况下,您应该为父类创建WeakReference
,并从那里调用activity.GetActionBar
。
要在使用自定义布局时为ActionBar
设置标题,需要在片段
中调用getactivity().settitle(YOUR_TITLE)
。
调用settitle
的原因是调用gettitle
作为actionbar
的标题。gettitle
返回该活动
的标题。
在您的活动中:
public void setActionBarTitle(String title){
YOUR_CUSTOM_ACTION_BAR_TITLE.setText(title);
}
在你的片段中:
((MainFragmentActivity) getActivity()).setActionBarTitle(YOUR_TITLE);
文档:
问题内容: 如何(如果可能)如何在Assets文件夹中的字体中设置ActionBar标题文本(仅-不是标签文本)中的自定义字体?我不想使用android:logo选项。 问题答案: 我同意不完全支持此操作,但这就是我所做的。您可以将自定义视图用于操作栏(它将显示在图标和操作项之间)。我正在使用自定义视图,并且已禁用本机标题。我所有的活动都继承自一个活动,该活动在onCreate中包含以下代码: 我
问题内容: 如何从片段(android.support.v4.app.Fragment)中访问ActionBar。我正在使用Android支持库v4和v7。我没有使用Sherlock库。 承载片段的活动是ActionBarActivity。 我已经阅读了Android帮助片段Fragment,它也导致了我getActivity(),但是没有getSupportActionBar()方法。 问题答案
如何从片段(android.support.v4.app.Fragment)中访问ActionBar。我正在使用Android支持库v4和V7。我不会用夏洛克图书馆的。 承载该片段的活动是ActionBarActivity。 我阅读了Android帮助部分的片段,它也引导了我getActivity(),但是没有getSupportActionBar()方法。
问题内容: 我正在尝试在标签的标题上设置自定义字体。 我看到更多的开发要求一个适当的方式做到这一点的SO可能我设置选项卡上的文字动作条自定义字体,在我的资产字体文件夹?),但没有答案。 到目前为止,我已经采用了两种方法: 1)第一个是 受此 SO问题 _启发_的,包括为每个选项卡增加自定义布局: 这似乎不是一个很好的方法,因为如果选项卡+动作在横向模式下不适合ActionBar,则选项卡标题将显示
我有一个有三个片段的活动。片段A在ActionBar中有1项。片段B在actionbar中有4项,片段C有1项。所以,当我换到片段B时,我想要拆分actionbar,但我不想在A-C片段中拆分action bar,因为没有理由只为一个项目填充屏幕底部的条。 当我在片段之间改变时,我可以改变actionbar模式吗?
当我从片段B回到片段A时,actionbar标题应该是“fraga”,但它仍然是“fragb”。问题是add方法片段A没有重新创建,我没有找到事件来刷新它。 目前我找到的唯一简单的解决方案是: 1-fragb.onResume:保存上一个操作栏标题