我有一个DialogFragment
使用全屏样式setStyle(STYLE_NORMAL, R.style.Theme_App)
.
The DialogFragment
显示良好,但向上动作(homeAsUp
ActionBar 上的操作)不起作用。我尝试实施onOptionsItemSelected
in the DialogFragment
但它从未被调用过。
有没有办法在 DialogFragment 中获取向上操作回调,以便我可以忽略它?作为参考,我正在使用ActionBarCompat
.
这是不可能的,但有一个解决方法,使用Toolbar
。现在您可以包括Toolbar
作为你的一部分DialogFragment
layout xml
并可以根据您的需要设置其设计/图标。您还需要实施setNavigationOnClickListener
如果您希望后退按钮像平常一样工作。请参阅下面的示例类。
package com.package.name;
import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class MyDialogFragment extends DialogFragment {
private View parentView;
private Toolbar toolbar;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
setStyle(DialogFragment.STYLE_NO_FRAME, R.style.Theme_AppCompat_NoActionBar);
return super.onCreateDialog(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//The layout xml file contains the toolbar
parentView = inflater.inflate(R.layout.dialogfragment_createpost, container, false);
initView();
initData();
return parentView;
}
private void initView() {
toolbar = (Toolbar) parentView.findViewById(R.id.toolbar);
}
private void initData() {
toolbar.setTitle("Post");
//Set naviagtion icon to back button drawable
toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// handle back button naviagtion
dismiss();
}
});
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)