如何将名为Reload的按钮与我的操作栏右侧对齐?我知道这有可能我试图把 android:gravity =“right”但是没有用
activity_main_ab.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="fill_horizontal"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:orientation="horizontal" >
<Button
android:id="@+id/action_bar_button_about"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ios_btn"
android:textColor="#ffffff"
android:text="about" />
<Button
android:id="@+id/action_bar_button_reload"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@drawable/ios_btn"
android:layout_weight="1"
android:textColor="#ffffff"
android:text="reload" />
</LinearLayout>
</RelativeLayout>
这是我的 MainActivity.java
package jb.cydia;
import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ActionBar ab = getActionBar();
ab.setDisplayShowHomeEnabled(false);
ab.setDisplayShowTitleEnabled(false);
final LayoutInflater inflater = (LayoutInflater)getSystemService("layout_inflater");
View view = inflater.inflate(R.layout.activity_main_ab,null);
ab.setCustomView(view);
ab.setDisplayShowCustomEnabled(true);
}
}
是的,看起来IOS我知道关于定制的机器人吗?
答案 0 :(得分:2)
您不需要LinearLayout。坚持使用RelativeLayout并使用android:layout_alignParentRight =“true”
看看这个答案,它显示了一个很好的例子:Android Layout Right Align
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="fill_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/action_bar_button_about"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ios_btn"
android:textColor="#ffffff"
android:text="about" />
<Button
android:id="@+id/action_bar_button_reload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ios_btn"
android:layout_weight="1"
android:textColor="#ffffff"
android:text="reload"
android:layout_alignParentRight="true"/>
</RelativeLayout>
这是我做的:
android:layout_alignParentRight="true"
答案 1 :(得分:1)
ActionBar自定义视图的父级似乎是FrameLayout。因此,最快的解决方案是:
android:layout_width="wrap_content"
android:layout_gravity="end"
在顶级视图或容器中。
由于这是对ActionBar视图实现的假设,因此Enno可能更强大。也就是说,我认为这是一个非常安全的假设。
答案 2 :(得分:1)
你应该这样做:
actionBar.setCustomView(view, new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT,
ActionBar.LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_VERTICAL));
actionBar.setDisplayShowCustomEnabled(visible);