android-fragments 相关问题

片段表示Android应用中的可重用行为或用户界面的一部分。

Android BottomSheetDialogFragment 状态变化监听器

我正在使用 BottomSheetDialogFragment,我需要知道状态何时发生变化。 例如有BottomSheetBehavior的状态 PEEK_HEIGHT_AUTO - 查看其父级的 16:9 比例键线。 ...

回答 2 投票 0

Android为fragment设置透明背景

在我的应用程序中,我有单个活动和所有其他片段 我正在从 style.xml 设置活动背景,如下所示 @color/very_light_gray 在我的应用程序中,我有单个活动和所有其他片段 我正在从 style.xml 设置活动背景,如下所示 <item name="android:windowBackground">@color/very_light_gray</item> 现在,对于一个特定的片段,我想将背景设置为透明,但我无法做到这一点,在片段中尝试的以下代码对我不起作用 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // create ContextThemeWrapper from the original Activity Context with the custom theme final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.yourCustomTheme); // clone the inflater using the ContextThemeWrapper LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper); // inflate the layout using the cloned inflater, not default inflater return localInflater.inflate(R.layout.yourLayout, container, false); } 知道怎么做吗? 这不是完美的解决方案,但它有效 不要使用 Fragment,而是使用 DialogFragment //exploreCategory is argument class MyFragment(val exploreCategory: ExploreCategory) : DialogFragment() { override fun onStart() { super.onStart() setWindowParams() } private fun setWindowParams(){ dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) dialog?.window?.setLayout( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT ) } } 剩余代码与您在片段中编写的代码相同 要在片段中显示使用下面的代码,如果在活动中显示则使用fragmentManager MyFragment(exploreCategory).show(childFragmentManager,null) //exploreCategory is argument, you can choose to send no arguments 创建回调并在 Acitvity 中实现它 interface OnFragmentDisplay{ onFragmentDisplay(); } 当此片段显示时将活动背景更新为透明..或在活动中将其设置为主题 请参阅 此链接 和 此 可能会有所帮助 你试过这个吗 fragment.getView().setBackgroundColor(Color.WHITE); 在样式应用程序中使用 null 作为颜色 <item name="android:windowBackground">null</item> 您的 Activity 容器布局背景应该是透明的。然后为Fragment的布局设置背景颜色。对于特定片段的布局,设置透明颜色以获得您所需的场景。 简单的方法是为该特定片段的根布局设置背景颜色,如下所示 android:background="@android:颜色/透明" 因此,假设您希望活动和片段对于特定片段是透明的(不太清楚这是否是您想要的问题,但我假设它是)..您需要设置“当“透明”片段附加到它时,“主机”活动背景变为透明。当任何其他片段附加到它时,您将需要重置活动背景,否则它将保持透明.. 有几种方法可以做到这一点,但我将选择“相当”简单的方法: 在你的透明片段中: @Override public void onStart() { super.onStart(); // I'm using null here because drawing nothing is faster than drawing transparent pixels. getActivity().getWindow().setBackgroundDrawable(null); getView().setBackground(null); } @Override public void onStop() { super.onStop(); getActivity().getWindow().setBackgroundDrawable(new ColorDrawable(@color/very_light_gray)); } 不完全确定这是否是您想要的效果。 祝你好运。 亲切的问候, 希杰 您必须将您的 Activity 也设置为透明。 android:background="@android:color/transparent" 由于您的 Activity 有 @color/very_light_gray,即使您将 Fragment 设置为 @android:color/transparent 也不起作用。 每个视图必须有透明背景以避免重叠。 在实例化片段时,您可以在活动中使用类似下面的代码。您可以使用自己的颜色来代替 Color.White。 fragment.getView().setBackgroundColor(Color.WHITE); 在代码中添加这一行 getActivity().getWindow().setBackgroundDrawableResource(R.drawable.my_drawable); 将活动布局的样式设置为 <style name="RootLayout" parent="AppTheme"> <item name="android:background">@drawable/app_transparent_background</item> </style> 并将其在 Activity 的父布局中设置为 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" style="@style/RootLayout" ...> 在其他要设置白色或其他彩色背景的片段中,在这些片段的主布局中设置不同的样式。 会起作用的 您刚刚在代码下面设置了布局片段的背景: <LinearLayout ... android:background="@android:color/transparent"/> 两步: 第一步 - 创建一个具有透明背景的视图(在 XML 文件中)。 在android studio中,找到“res”文件夹,右键单击它,new -> android resource file。比在出现的对话框中输入: File name:{这里放任何东西。例如 - “my_fragment”(不带引号)}请注意,只有小写字母、数字和下划线才可以 Resource type: 布局 Root element: LinearLayout(在您学会更好地了解 XML 布局之后,您可以在此处放置其他任何内容) Source set:主要 Directory name:布局。 在出现的窗口中切换到“文本”模式而不是“设计”(查找屏幕左下角的选项卡)。 而不是复制粘贴它而不是文件的内容(它非常相似,我们只是在此处添加“透明”背景): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" > </LinearLayout> 第二步 - 在片段中膨胀此布局。 创建扩展 Fragment 的片段类并重写 onCreateView() 方法,在该方法内膨胀您的视图并返回它: public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) // assuming you named your xml file "my_fragment": // for other names replace R.layout.my_fragment with R.layout.put_your_name_here View view = inflater.inflate(R.layout.my_fragment, container, false); return view; } 当然,不要忘记在活动中创建片段的实例!

回答 12 投票 0

如何在动画时将输入片段显示在退出片段上方。

我想要实现的效果是将输入(新)片段覆盖在退出(旧)片段之上, 但是当我用新片段替换旧片段时,旧片段就消失了,新片段滑动了......

回答 3 投票 0

设备上未显示按钮的 Android 片段

我遇到了 android studio 设计器中显示的 framgent 问题,但在设备上启动时却没有。 活动_main.xml: ...

回答 1 投票 0

Android java.util.concurrent.RejectedExecutionException:任务 android.os.AsyncTask 从 java.util.concurrent 被拒绝

我正在 Listview 上的线程池上创建 AsyncTask。我正在通过 AsyncTask 数组处理这些任务。当片段被破坏时,我必须删除这些任务,并且我必须再次进行...

回答 1 投票 0

与 Compose 的互操作性和运动布局不滚动?

我在片段中有以下布局 标题图片 ===================================== 选项卡 1。选项卡 2。选项卡3。 ===================================== 碎片 A. 碎片 B. ...

回答 1 投票 0

导航主机片段不显示任何片段

任何人都可以帮助我,我使用 mvvm 模型在我的应用程序中显示电影信息,我想我做了所有正确的事情,但是当我运行我的应用程序时,它在片段和主要活动中没有显示任何内容...

回答 1 投票 0

android.view.InflateException:膨胀类 androidx.fragment.app.FragmentContainerView 时出错

我将我的应用程序作为公开测试版发布到 Play 商店。当我使用模拟器运行它或通过 Android Studio 连接手机时,我没有收到任何错误。但是,当我安装该应用程序时...

回答 1 投票 0

如何显示使用Camerax API(Android)拍摄的图像

如何在Android中显示使用CameraX拍摄的图像。 我的情况:我有两个片段。在其中一个片段中,我实现了 CameraX 功能来拍摄照片并将其保存在本地。 ...

回答 2 投票 0

向上滚动 reyclerview android 时项目正在更新?

我正在制作一个应用程序,其中我必须将数据插入到reyclerview中,recyclerview工作正常,但问题是当我向上滚动适配器时重新更新数据,所以要解决这个问题...

回答 1 投票 0

如何替换 setTargetFragment() 既然它已被弃用

setTargetFragment() 在 Java 中已被弃用,我不明白它的正确替代品,因为 android 文档使用它并且已经过时了。我相信 FragmentManager 是正确的替代品...

回答 3 投票 0

为什么registerForActivityResult总是返回相同的结果?

当我第一次和第二次按下开关时,请求对话框显示并按下不允许开关正常工作。 但是第三次当我按下开关时,请求对话框没有显示,我总是得到

回答 1 投票 0

Firebase Spinner 下拉列表未填充

当我尝试从 firebase 获取数据时,我的微调器似乎没有填充。请帮我。 这是初始化旋转器的代码: 私有无效 initLocation() { 数据库参考...

回答 1 投票 0

Android Studio 中的错误:方法 (onClick) 不会覆盖其超类中的方法

在实现片段逻辑的 Android Studio Java 类 (SavvyFragment.java) 中,我有一个 onClick 方法来处理视图的不同按钮。 它是从一个活动中复制和改编的...

回答 1 投票 0

Fragment onPause 时未调用 onAnimationEnd

对象:Animation.AnimationListener { 覆盖 fun onAnimationEnd(动画: 动画) { Log.d("TAG", "onAnimationEnd") // 做一点事 } 覆盖...

回答 1 投票 0

如何从嵌套回收器视图子适配器返回片段

在我的 kotlin 项目中,从主要活动中,从底部菜单添加了一个片段(peoplenearby 片段)。在该片段中,通过嵌套回收器视图配置文件图像和查看的名称。如果我...

回答 1 投票 0

如何从另一个fragment中获取recycleView的fragment onViewCreated中的数据?

我有片段 WorkoutFragment 和 Bundle,用于将数据传输到片段 DeliteFragment: FragmentManagerfragmentManager = getFragmentManager(); FragmentTransaction 片段事务 =

回答 1 投票 0

Jetpack 撰写创建多页面表单的最佳实践(如片段)

我希望用户通过填写文本字段来创建一个对象,但我的对象很大,文本字段的数量意味着创建一个由文本字段、复选框等组成的长可滚动屏幕。所以 instea...

回答 2 投票 0

Kotlin 在片段之间设置 RecyclerView Item 的特定动画

我正在使用导航库来导航和制作动画。当我进行转换时,我的代码是这样的; 私人 val onClicked = 对象 :MyAdapter.OnItemClickListener{ 覆盖 fun onClicked(id: Int)...

回答 1 投票 0

发送到方法的布尔数组会莫名其妙地更改数组布尔值之一

这非常奇怪且难以解释,因此屏幕截图可能会有所帮助。 我有一个 Fragment,它启动 DialogFragment 来过滤 RecyclerView 的结果。该对话框显示了我们可以选择的三个选项...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.