是否可以在Sherlock Action Bar的中心添加自定义文本?
我知道我们可以将它设置在右侧,就像我们添加按钮或徽标旁边一样,但是在酒吧的中心呢?
编辑:
我这样做了,它渲染了,但它并没有集中在栏中。
LayoutInflater linflater = (LayoutInflater) getSystemService(getApplicationContext().LAYOUT_INFLATER_SERVICE);
View GalleryTitleView = linflater.inflate(R.layout.gallery_title_layout, null);
GalleryTitleTv = (TextView) GalleryTitleView.findViewById(R.id.GalleryTitleTv);
ActionBar.LayoutParams lp = new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.CENTER_HORIZONTAL;
GalleryTitleView.setLayoutParams(lp);
getSupportActionBar().setCustomView(GalleryTitleView);
getSupportActionBar().setDisplayShowCustomEnabled(true);
答案 0 :(得分:3)
使用自定义视图,ActionBar.LayoutParams
的{{1}}设置为gravity
。
答案 1 :(得分:0)
通过在Gallery_title_layout.xml
中设置textview的引力,在center|horizantal_Center
中进行更改,
我建议你使用相对布局
答案 2 :(得分:0)
如果您希望文本完全位于操作栏中,除了让其他操作和纽扣;然后你需要将文本(视图)放在自定义视图中。根据我的经验,如果你将文本放在一个动作(视图或提供者)中,你就不能给它一个MATCH_PARENT的布局参数,并期望它占据动作栏的整个长度。
以下是有关如何放置自定义视图的教程:https://plus.google.com/+RomanNurik/posts/R49wVvcDoEW
答案 3 :(得分:0)
你可以试试这个:
View customView = LayoutInflater.from(this).inflate(R.layout.actionbar_title, null);
ActionBar.LayoutParams params = new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT,
ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_HOME_AS_UP );