首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用ActionBarSherlock向ActionBar添加按钮

答案

要在ActionBarSherlock中向ActionBar添加按钮,您需要遵循以下步骤:

  1. res/layout/目录下创建一个XML布局文件(例如:action_bar_button.xml),并添加一个Button控件。
代码语言: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="match_parent">

    <Button
        android:id="@+id/action_bar_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:text="Button at the bottom" />

</RelativeLayout>
  1. 在您的Activity或Fragment的onCreate()方法中,通过ActionBarSherlock提供的setSupportActionbar()方法来设置ActionBar。
代码语言:java
复制
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.ActionMode;

...

public class MainActivity extends SherlockActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Set the action bar
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setTitle("My Title");
    }
}
  1. res/values/目录下创建一个名为action_mode_theme.xml的文件,并添加以下内容:
代码语言:xml
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.Sherlock.Light" parent="Theme.Sherlock.Light.DarkActionBar">
        <item name="actionBarStyle">@style/Widget.Sherlock.Light.ActionBar.Solid.Inverse</item>
        <item name="actionBarTabStyle">@style/Widget.Sherlock.Light.ActionBar.TabView.Inverse</item>
        <item name="actionBarItemBackground">@drawable/abs__item_background_holo_light</item>
        <item name="actionModeStyle">@style/Widget.Sherlock.Light.ActionMode.Inverse</item>
        <item name="actionModeSplitBackground">@drawable/abs__action_bar_item_split_background_holo_light</item>
        <item name="actionModeCloseButtonStyle">@style/Widget.Sherlock.Light.ActionMode.CloseButton.Inverse</item>
    </style>
</resources>
  1. 在您的Activity或Fragment的onCreateActionMode()方法中,通过ActionBarSherlock提供的buildActionMode()方法来创建一个操作模式。
代码语言:java
复制

import com.actionbarsherlock.app.SherlockActionMode;

import com.actionbarsherlock.app.SherlockActivity;

...

public class MainActivity extends SherlockActivity {

代码语言:txt
复制
@Override
代码语言:txt
复制
protected void onCreate(Bundle savedInstanceState) {
代码语言:txt
复制
    super.onCreate(savedInstanceState);
代码语言:txt
复制
    setContentView(R.layout.activity_main);
代码语言:txt
复制
    // Set the action bar
代码语言:txt
复制
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
代码语言:txt
复制
    getSupportActionBar().setHomeButtonEnabled(true);
代码语言:txt
复制
    getSupportActionBar().setTitle("My Title");
代码语言:txt
复制
    // Create the action mode
代码语言:txt
复制
    mActionMode = getSupportActionBar().startActionMode(new MyActionMode(this));
代码语言:txt
复制
}
代码语言:txt
复制
@Override
代码语言:txt
复制
public void onDestroyActionMode(ActionMode mode) {
代码语言:txt
复制
    mActionMode = null;
代码语言:txt
复制
}
代码语言:txt
复制
private static class MyActionMode implements ActionMode.Callback {
代码语言:txt
复制
    private final SherlockActivity mActivity;
代码语言:txt
复制
    private final ActionBarSherlock mActionBar;
代码语言:txt
复制
    private final View mCustomView;
代码语言:txt
复制
    private final Menu mMenu;
代码语言:txt
复制
    public MyActionMode(SherlockActivity activity) {
代码语言:txt
复制
        mActivity = activity;
代码语言:txt
复制
        mActionBar = activity.getSupportActionBar();
代码语言:txt
复制
        mCustomView = LayoutInflater.from(mActivity).inflate(R.layout.action_mode_custom, null);
代码语言:txt
复制
        mMenu = mActivity.getMenu();
代码语言:txt
复制
    }
代码语言:txt
复制
    @Override
代码语言:txt
复制
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
代码语言:txt
复制
        mActionBar
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券