有時候你的程式是很久以前寫的, 主要的程式都是Activity,
這時候你又想要改成Toolbar該怎麼辦呢?
其實不困難, 你可以透過實作AppCompatCallback介面來達成。
public class MainActivity extends Activity implements AppCompatCallback {
private Toolbar mToolbar;
private AppCompatDelegate mDelegate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDelegate = AppCompatDelegate.create(this, this);
mDelegate.onCreate(savedInstanceState);
mDelegate.setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mDelegate.setSupportActionBar(mToolbar);
}
@Override
public void onSupportActionModeStarted(ActionMode mode) {
}
@Override
public void onSupportActionModeFinished(ActionMode mode) {
}
@Nullable
@Override
public ActionMode onWindowStartingSupportActionMode(ActionMode.Callback callback) {
return null;
}
}
只要把xml加入toolbar
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.givemepass.activitytoolbardemo.MainActivity">
<android.support.v7.widget.Toolbar
android:background="?attr/colorPrimary"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:titleTextColor="@android:color/white"
android:layout_height="?android:attr/actionBarSize" >
</android.support.v7.widget.Toolbar>
</RelativeLayout>
就可以看到我們熟悉的Toolbar惹
需要更詳細的說明可以參考
How to add Toolbar to an Activity which doesn’t extend AppCompatActivity
程式碼
github