在我的应用程序中,我可以通过自定义DialogFragment调用Facebook的登录名(或Dialogfeed)。
当我更改设备的方向时,我手动“重新显示”onConfigurationChanged()内的DialogFragment:
Fragment resultFrag = getSupportFragmentManager().findFragmentByTag("Mydialog");
if (resultFrag != null) {
DialogImage dialognew = DialogImage.newInstance(user,index,title,url);
getSupportFragmentManager().beginTransaction().remove(resultFrag).commit();
dialognew.show(getSupportFragmentManager(), "Mydialog");
}
Facebook登录(或Dialogfeed)时遇到问题,因为当我“重新显示”它时,DialogFragment不会留在它后面。
如何再次将DialogFragment置于Facebook登录(或Dialogfeed)后面?
或如何删除Facebook的登录(或Dialogfeed)(如果有)? (这是一个可能的解决方案,用户应重新启动......无所谓)
提前致谢
PD:我的应用程序的更多代码
当我的主要活动调用我的DialogFragment时:
FragmentManager ft = getSupportFragmentManager();
DialogImage dialog = DialogImage.newInstance(user,index,title,url);
dialog.show(ft, "Mydialog");
LogginButton登录FB里面的布局,它在我的DialogFragment中膨胀:
<com.facebook.widget.LoginButton
xmlns:fb="http://schemas.android.com/apk/res-auto"
android:id="@+id/login_shareButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"/>
在用户登录后,我使用以下命令处理LoginButton的操作:
share = (LoginButton) view.findViewById(R.id.shareButton);
share.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
publishFeedDialog();
}
});
然后,当我按下此按钮时,可以弹出登录窗口或feeddialog。
所以...我的问题是当我的应用程序打开DialogFragment和Login / DialogFeed并且我旋转我的设备(在onConfigurationChanged()中手动处理)并刷新DialogFragment到横向版本,然后Login / DialogFeed隐藏在后面DialogFragment
resume: - 主要活动调用DialogFragment - &GT; DialogFramgent调用Login或FeedDialog(如果用户之前登录或未登录) - &GT;旋转设备并将DialogFragment刷新为横向版本 - &GT; Login / FeedDialog被隐藏,我的应用程序显示我的DialogFragment - &GT;我只能关闭DialogFragment来访问Login / FeedDialog - &GT;如果我关闭它,我尝试使用Login / DialogFeed - &gt;错误
E/AndroidRuntime(1362): java.lang.IllegalStateException: Fragment DialogImage{4170ad00} not attached to Activity