在ActionBarSherlock中心设置自定义文本

时间:2012-07-04 10:25:06

标签: android actionbarsherlock

是否可以在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);

4 个答案:

答案 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 );