2

是否可以在 Sherlock 操作栏的中心添加自定义文本?

我知道我们可以将它设置在右侧,就像我们添加按钮时一样,或者在徽标旁边,但是在栏的中心呢?

编辑:

我这样做了,它渲染了,但它只是不在栏中。

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

4 回答 4

3

使用设置为ActionBar.LayoutParams的自定义视图。gravityGravity.CENTER

于 2012-07-04T10:29:08.730 回答
0

Gallery_title_layout.xml通过在 中设置 textview 的重力来进行更改center|horizantal_Center,我建议您使用相对布局

于 2012-08-17T05:59:08.967 回答
0

如果您希望文本完全居中在操作栏中,除了有其他操作和按钮;那么您需要将文本(视图)放在自定义视图中。根据我的经验,如果您将文本放在一个操作(视图或提供程序)中,您不能给它一个 MATCH_PARENT 的布局参数并期望它占据整个操作栏的长度。

这是有关如何放置自定义视图的教程:https: //plus.google.com/+RomanNurik/posts/R49wVvcDoEW

于 2013-05-02T13:18:07.970 回答
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 );
于 2014-08-17T01:19:43.497 回答