gpt4 book ai didi

android - 如何在 fragment 中居中对话?

转载 作者:行者123 更新时间:2023-11-29 18:09:59 25 4
gpt4 key购买 nike

在显示多个 fragment (例如列表 fragment 和详细信息 fragment )并且其中一个 fragment 显示警告对话框(DialogFrament)的情况下,我希望对话框在显示它的 fragment ,不在整个屏幕的中心。有没有一种方法可以在不涉及屏幕尺寸、 fragment 尺寸和位置等的大量像素计算的情况下做到这一点?

最佳答案

您可以使用 FrameLayout 来完成此操作,正如 Joe Simpson 提到的那样。假设您想将对话 fragment 放在您提到的详细信息 fragment 的顶部。在 Activity 布局中的细节 fragment 周围放置一个 FrameLayout,然后将对话框 fragment 也嵌入到 FrameLayout 中(使用 layout_gravity="center")。设置 visibility="gone"直到你需要它。例如:

            <FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >

<fragment
android:id="@+id/my_details_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.my.fragment.DetailsFragment" />

<fragment
android:id="@+id/my_dialog_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.my.fragment.DialogFragment"
android:layout_gravity="center" />
</FrameLayout>

您也可以通过编程方式启动它。在 xml 中放置一个 holder View (例如 LinearLayout):

            <FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >

<fragment
android:id="@+id/my_details_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.my.fragment.DetailsFragment" />

<LinearLayout
android:id="@+id/myfragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>

...然后用这样的代码替换它:

            final MyDialogFragment dialog = MyDialogFragment.getInstance();

// get an instance of FragmentTransaction from your Activity
FragmentTransaction fragmentTransaction = getSupportFragmentManager()
.beginTransaction();
fragmentTransaction.add(R.id.myfragment, dialog);
fragmentTransaction.commit();

请注意 docs on DialogFragment说这样嵌入它很好:“如果需要,DialogFragment 仍然可以选择用作普通 fragment 。如果您有一个 fragment ,在某些情况下应显示为对话框,而其他 fragment 应嵌入更大的 UI 中,这将很有用”

关于android - 如何在 fragment 中居中对话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11268381/

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