gpt4 book ai didi

android - 是否可以允许 fragment 旋转而不是父 Activity ?

转载 作者:行者123 更新时间:2023-11-29 01:03:23 31 4
gpt4 key购买 nike

我有一个 Activity 和一个全屏 fragment ,它继承自 AppCompatDialogFragment。在 Activity 上创建一个静态实例,并调用 Show 方法启动它。

我希望 fragment 能够旋转,但 Activity 不能。

我尝试在 OnCreate 的覆盖中将 Activity 的请求方向设置为“纵向”,并在 fragment 的 OnCreate 中再次将其设置为“未指定”。问题是当屏幕旋转时,Activity 被重新创建, fragment 的 OnCreate 在 Activity.w 的 OnCreate 之前被调用

感谢任何帮助。

最佳答案

I have an Activity and a fullscreen fragment, which inherits from AppCompatDialogFragment. A static instance is created on the Activity and the Show method is called to launch it.

I'd like the fragment to be able to rotate but not the Activity.

只要给 fragment 的旋转一个值就可以了:

public class MainActivity : AppCompatActivity
{
AppCompatDialogFragment testFragment;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);

// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
testFragment = new TestFragment();
testFragment.Show(SupportFragmentManager, "abc");
}
}

然后在 Fragment 中我设置了一个按钮,当点击时我将 Fragment 的 Rotation 设置为增加 5:

public class TestFragment : AppCompatDialogFragment
{
Button btnClick;
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);

// Create your fragment here
}

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
// return inflater.Inflate(Resource.Layout.YourFragment, container, false);

View view=inflater.Inflate(Resource.Layout.test_fragment, container, false);
btnClick = view.FindViewById<Button>(Resource.Id.btnClick);
btnClick.Click += BtnClick_Click;
return view;
}

private void BtnClick_Click(object sender, EventArgs e)
{
this.View.Rotation += 5f;
}
}

注意:您必须管理 fragment 的大小,以防 View 在旋转后超出边界。

关于android - 是否可以允许 fragment 旋转而不是父 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49325112/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com