Eli*_*age 16 android android-fragments android-fragmentactivity
这是我的问题:我确实有一个FragmentActivity,它包含一个片段列表(在它们之间导航的方法)在其中一个片段中我需要调用一个DialogFragment来显示该片段中包含的图片的"缩放".
但似乎你不能直接从Fragment调用DialogFragment.
有没有办法让FragmentActivity获得一些"回调",以便在片段上显示DialogFragment.
或者只是一个"故障"直接从片段中调用它.
如果是这样的话,你是否知道一个关于它的好教程?
最好的祝福,
艾莉佩奇
Man*_*oba 15
当你创建一个新的时Dialog,你可以简单地使用这个(非常)简单的方法来调用它Fragment.
DialogFragment dialog = DialogFragment.instantiate(getActivity(), "Hello world");
dialog.show(getFragmentManager(), "dialog");
Run Code Online (Sandbox Code Playgroud)
如果您想使用自己的对话框,请使用那种代码.
public class MyDialogFragment extends DialogFragment
{
//private View pic;
public MyDialogFragment()
{
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
View view = getActivity().getLayoutInflater().inflate(R.layout.fragment_my_dialog, new LinearLayout(getActivity()), false);
// Retrieve layout elements
TextView title = (TextView) view.findViewById(R.id.text_title);
// Set values
title.setText("Not perfect yet");
// Build dialog
Dialog builder = new Dialog(getActivity());
builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
builder.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
builder.setContentView(view);
return builder;
}
}
Run Code Online (Sandbox Code Playgroud)
检查导入语句.如果我们使用
ExampleDialogFragment dialog = new ExampleDialogFragment ();
dialog .show(getFragmentManager(), "example");
Run Code Online (Sandbox Code Playgroud)
然后确保导入
import android.app.DialogFragment;
import android.app.Fragment;
Run Code Online (Sandbox Code Playgroud)
不是来自支持库.
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
Run Code Online (Sandbox Code Playgroud)
如果您需要在片段内显示片段对话框,它将很有帮助
public class DialogBoxFragment extends DialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View rootView = inflater.inflate(R.layout.dialog_fragment, container, false);
getDialog().setTitle("simple dialog");
return rootView;
}
}Run Code Online (Sandbox Code Playgroud)
DialogFragment dialogFragment = new DialogFragment ();
dialogFragment.show(getActivity().getFragmentManager(),"simple dialog");Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40100 次 |
| 最近记录: |