nil*_*ash 16 android title center-align android-actionbar
嗨,我正在开发Android应用程序.在我的应用程序中,我正在使用操作栏.我想让中心在动作栏中对齐我的窗口标题.我知道可以使用xml文件.但我想用风格来做它,以便它适用于我的每个窗口,如何做到这一点需要帮助.谢谢.
Nap*_*ean 29
在不使用actionBar的自定义布局的情况下使ActionBarTitle居中的简单方法.
但在此之前,首先将Icon隐藏为:
myActionBar.setIcon(new ColorDrawable(Color.TRANSPARENT));
private void centerActionBarTitle() {
int titleId = 0;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
titleId = getResources().getIdentifier("action_bar_title", "id", "android");
} else {
// This is the id is from your app's generated R class when
// ActionBarActivity is used for SupportActionBar
titleId = R.id.action_bar_title;
}
// Final check for non-zero invalid id
if (titleId > 0) {
TextView titleTextView = (TextView) findViewById(titleId);
DisplayMetrics metrics = getResources().getDisplayMetrics();
// Fetch layout parameters of titleTextView
// (LinearLayout.LayoutParams : Info from HierarchyViewer)
LinearLayout.LayoutParams txvPars = (LayoutParams) titleTextView.getLayoutParams();
txvPars.gravity = Gravity.CENTER_HORIZONTAL;
txvPars.width = metrics.widthPixels;
titleTextView.setLayoutParams(txvPars);
titleTextView.setGravity(Gravity.CENTER);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道可以使用xml文件.但我想用风格来做它,以便它适用于我的每个窗口,如何做到这一点需要帮助.
您仍然使用xml来执行此操作.只需将样式应用程序广泛应用于单个活动.有关完整说明,请参阅android文档:
https://developer.android.com/training/basics/actionbar/styling.html
然后将您的主题应用于整个应用或个人活动:
<application android:theme="@style/CustomActionBarTheme" ... />
Run Code Online (Sandbox Code Playgroud)
编辑:这是你将如何处理标题的中心:
在你的action_bar.xml中,你会有这样的事情:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="SOME TITLE"
android:textSize="18sp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
然后在你的onCreate()你会有类似的东西:
getSupportActionBar().setCustomView(R.layout.action_bar);
Run Code Online (Sandbox Code Playgroud)
如果你需要在每项活动中都有这个,你有两个选择:
小智 5
不幸的是,SBerg413 的方式对我不起作用。
我的自定义布局是
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/custom_action_bar_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="test"
android:textColor="@color/action_bar_title_color"
android:textSize="@dimen/action_bar_title_size" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
UPD:这个活动我像父母一样用于我所有的活动,应该有操作栏。
public class ActionBarCustomizationActivity extends ActionBarActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getSupportActionBar().setDisplayShowCustomEnabled(true);
LayoutInflater inflater = LayoutInflater.from(this);
View v = inflater.inflate(R.layout.custom_action_bar, null);
TextView titleTextView = (TextView) v.findViewById(R.id.custom_action_bar_title);
titleTextView.setText(this.getTitle());
titleTextView.setTypeface(App.getInstance().getActionBarTypeFace());
this.getSupportActionBar().setCustomView(v);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48392 次 |
| 最近记录: |