相关疑难解决方法(0)

将自定义视图添加到工具栏

我正在尝试将自定义视图添加到新工具栏(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)

android android-toolbar

26
推荐指数
2
解决办法
4万
查看次数

在android中获取ActionBar TextView(标题)

根据标题,我需要检索出现在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)

android android-actionbar

3
推荐指数
1
解决办法
6834
查看次数