我创建了一个自定义操作栏
ActionBar actionBar = getActivity().getActionBar();
actionBar.setCustomView(R.layout.action_bar_draft);
actionBar.setDisplayShowCustomEnabled(true);
actionbarFeed = (TextView) actionBar.getCustomView().findViewById(R.id.textView_blogtest);
actionbarFeed.setText("My Photos and videos");
问题是文本视图不对齐中心
在我的布局中,文本视图位于中心。当它来到动作栏时,它会转移到右侧。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true" >
<TextView
android:id="@+id/textView_blogtest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000" />
</RelativeLayout>
<style name="AppTheme.ActionBarStyle" parent="@style/Widget.Sherlock.ActionBar.Solid">
<item name="android:icon">@drawable/menu</item>
<item name="android:background">#ffca36</item>
<item name="background">#f66605</item>
<item name="android:customNavigationLayout">@layout/action_bar</item>
</style>
答案 0 :(得分:0)
在这里寻找答案:How to center align the ActionBar title in Android?
基本上你应该改变动作栏的xml文件。
修改强>
发布操作栏的xml文件以获得更精确的答案......
<强> EDIT2:强>
我不知道。但是需要进行调试:将textview
的背景颜色设置为另一种颜色并发布其截图。通过此,您可以查看问题是textview
的内容是错误的,还是整个textview
未正确放置。
也许你只需要一行
android:gravity="center"
在TextView
?
答案 1 :(得分:0)
请使用以下功能设置操作栏
public void setMainScreenActionBar(String p_title)
{
LayoutInflater m_inflator = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ActionBar m_actionBar = getSupportActionBar();
View m_viewActionBar = m_inflator.inflate(R.layout.custom_actionbar_title_layout, null);
ActionBar.LayoutParams m_params = new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER);
TextView m_tvTitle = (TextView) m_viewActionBar.findViewById(R.id.title);
m_tvTitle.setText(p_title);
m_actionBar.setCustomView(m_viewActionBar, m_params);
m_actionBar.setDisplayShowCustomEnabled(true);
m_actionBar.setDisplayShowTitleEnabled(false);
m_actionBar.setDisplayHomeAsUpEnabled(true);
m_actionBar.setHomeButtonEnabled(true);
}
custom_actionbar_title_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingTop="10dp"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
在style.xml中写下以下代码
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="android:actionBarStyle">@style/MyActionBar</item>
<!-- Customize your theme here. -->
</style>
<style name="MyCustomTheme" parent="@style/Theme.AppCompat.Light">
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/orange</item>
<item name="background">@color/orange</item>
<item name="android:homeAsUpIndicator">@drawable/ic_backarrow</item>
<item name="homeAsUpIndicator">@drawable/ic_backarrow</item>
</style>
</resources>
答案 2 :(得分:0)
在onCreate()
方法中:
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
LayoutInflater mInflater = LayoutInflater.from(context);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setCustomView(mInflater.inflate(R.layout.custom_layout, null),
new ActionBar.LayoutParams(
ActionBar.LayoutParams.WRAP_CONTENT,
ActionBar.LayoutParams.MATCH_PARENT,
Gravity.CENTER
));
custom_layout
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Your title"
android:textColor="#ffffff"
android:id="@+id/mytext"
android:textSize="14dp" />
</LinearLayout>
然后你会得到一个只有标题的Actionbar
。