getActionBar()。setTitle()寻找什么id?

时间:2014-02-20 21:20:36

标签: android android-actionbar

我已经实现了自定义ActionBar布局。我希望为我的自定义布局TextView分配一个ID,该ID与默认 ActionBar布局中TextView中的ID相同,这样我就可以使用{{1最小的烦恼(没有扩展自定义的ActionBar类等等。)。

我在哪里可以找到该ID?我查看了SDK 19中的getActionBar().setTitle()个文件,并在layout中找到了action_bar_title的ID,但是在将该ID分配给我的自定义布局后,setTitle()无效。

1 个答案:

答案 0 :(得分:1)

  

我在哪里可以找到该ID?

action_bar_title是您要查找的ID。

  将该ID分配给我的自定义布局

后,

setTitle()无法正常工作

TextView添加相同的ID并不像预期的那样工作,因为系统使用自己的资源。换句话说,android.R.id.action_bar_title是与your_package_name.R.id.action_bar_title不同的ID。

但就轻松设定标题而言,还有三条线更多?

private TextView mYourCustomTitle;

/**
 * {@inheritDoc}
 */
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    View yourCustomActionBar = ...
    mYourCustomTitle = yourCustomActionBar .findViewById(R.id.action_bar_title;

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setCustomView(yourCustomActionBar);
}

/**
 * {@inheritDoc}
 */
@Override
public void setTitle(CharSequence title) {
    super.setTitle(title);
    mYourCustomTitle.setText(title);
}