我正在尝试将自定义视图添加到新工具栏(Lollipop).但不知何故,视图会添加到工具栏下方.我使用actionBar.setCustomView时工作正常,但现在迁移到工具栏后,它不起作用.下面是代码.应该做些什么改变?
片段:
toolbar = (Toolbar) getView().findViewById(R.id.toolbar);
((ActionBarActivity) getActivity()).setSupportActionBar(toolbar);
toolbar.setTitle(getString(R.string.app));
ActionBar actionBar = ((ActionBarActivity) getActivity())
.getSupportActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
LayoutInflater inflater = (LayoutInflater) getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// inflate the view
final View view = inflater.inflate(R.layout.actionbar_search, null);
final ImageView searchIcon = (ImageView) view
.findViewById(R.id.search_icon);
final ClearableAutoCompleteTextView searchBox = (ClearableAutoCompleteTextView) view
.findViewById(R.id.search_box);
// start with the text view hidden in the action bar
searchBox.setVisibility(View.INVISIBLE);
searchIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toggleSearch(false, view);
}
});
searchBox.setOnClearListener(new OnClearListener() {
@Override
public void onClear() {
toggleSearch(true, …Run Code Online (Sandbox Code Playgroud) 根据标题,我需要检索出现在ActionBar中的活动标题的textview.我可以使用以下方法获取ActionBar视图:
private View getActionBarView() {
View v = mWindow.getDecorView();
int resId = getResources().getIdentifier("action_bar_container", "id", "android");
return v.findViewById(resId);
}
Run Code Online (Sandbox Code Playgroud)
有没有人知道TextView的id,所以我可以在actionbar视图中找到ViewById?
解决了:好吧,我用相同的方法解决了但是通过改变id:
private TextView getActionBarTitle() {
View v = mWindow.getDecorView();
int resId = getResources().getIdentifier("action_bar_title", "id", "android");
return v.findViewById(resId);
}
Run Code Online (Sandbox Code Playgroud)