Android 自定义操作栏中的对齐
我已经创建了一个自定义操作栏Android 自定义操作栏中的对齐,android,android-actionbar,Android,Android Actionbar,我已经创建了一个自定义操作栏 ActionBar actionBar = getActivity().getActionBar(); actionBar.setCustomView(R.layout.action_bar_draft); actionBar.setDisplayShowCustomEnabled(true); actionbarFeed = (TextView) actionBar.getCustomView().findViewById(R.id.tex
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>
在这里寻找答案:
基本上,您应该更改动作栏的xml文件
编辑:
将您的xml文件发布到操作栏以获得更精确的答案
编辑2:
我不知道。但调试提示:将textview的背景色设置为另一种颜色,然后发布它的屏幕截图。从中可以看出问题是textview的内容放置错误,还是整个textview放置不正确
也许你只需要排队
android:gravity="center"
在您的文本视图中?请使用下面的功能设置操作栏
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);
}
自定义_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>
在onCreate方法中:
自定义布局:
然后,您将有一个只带有标题的操作栏。它将隐藏我的导航抽屉图标。您可以发布自定义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>
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
));
<?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>