Android 在其中一个片段中单击某个按钮后,如何禁用viewPager滚动?
我做了一个有两个标签的活动,一个用于登录,一个用于注册。这些选项卡中的每一个都是在各自的片段中设计的 我希望无论何时从片段中单击login或register按钮,viewPager都不应该再滚动,直到执行网络调用 最好的方法是什么?是否可以在不定义自定义viewpager类的情况下执行此操作Android 在其中一个片段中单击某个按钮后,如何禁用viewPager滚动?,android,android-studio,android-viewpager,Android,Android Studio,Android Viewpager,我做了一个有两个标签的活动,一个用于登录,一个用于注册。这些选项卡中的每一个都是在各自的片段中设计的 我希望无论何时从片段中单击login或register按钮,viewPager都不应该再滚动,直到执行网络调用 最好的方法是什么?是否可以在不定义自定义viewpager类的情况下执行此操作 如果整个布局冻结,或者活动在上述持续时间内停止使用任何类型的触摸或交换输入,我也可以这样做。点击按钮后,您可以在ViewPager上方添加一个透明视图,并将ClickListener设置为该视图。然后,您的
如果整个布局冻结,或者活动在上述持续时间内停止使用任何类型的触摸或交换输入,我也可以这样做。点击按钮后,您可以在ViewPager上方添加一个透明视图,并将ClickListener设置为该视图。然后,您的所有触摸都将被该透明视图消耗。网络响应出现后,移除透明视图 点击按钮后,您可以在ViewPager上方添加一个透明视图,并将ClickListener设置为该视图。然后,您的所有触摸都将被该透明视图消耗。网络响应出现后,移除透明视图 如果整个布局冻结,或者活动在上述持续时间内停止使用任何类型的触摸或交换输入,我也可以 我想你需要一个 要显示进度并调用它,请在后台任务完成时关闭()对话框 如果整个布局冻结,或者活动在上述持续时间内停止使用任何类型的触摸或交换输入,我也可以 我想你需要一个
要显示进度并调用它,当后台任务完成时,请关闭()对话框,您可以使用不可取消的对话框,该对话框将显示在屏幕顶部,直到网络做出响应。在ProgressDialog上使用
.setCancelable(true)
。此解决方案可能对您有所帮助@lRadha是的,这正是我应该做的。但是对于这个项目,我将使用透明视图。但对于将来的使用,我肯定会选择不可取消对话框。您可以使用不可取消对话框,它将显示在屏幕顶部,直到网络做出响应。在ProgressDialog上使用.setCancelable(true)
。此解决方案可能对您有所帮助@lRadha是的,这正是我应该做的。但是对于这个项目,我将使用透明视图。但是,为了以后的使用,我一定会去不可取消的对话框。最好的解决方案,如果你想禁用两个方向上的刷卡,不需要编写自定义视窗。我不认为这是最好的解决方案。如果您编写自定义的viewpager,则该viewpager可以在许多布局中重复使用。但是在这种方法中,您必须在所有布局中添加透明视图。自定义viewpager提高了代码的可读性和可维护性,因为viewpager的所有启用和禁用都会进入viewpager本身。这些逻辑不会在您的活动或片段中杂乱无章。因为问题是“是否可以在不定义自定义viewpager类的情况下执行此操作”,我已经回答了透明视图解决方案。stackoverflow中已经有很多自定义的viewpager解决方案。是的,我自己也使用过自定义的viewpager,用于在两个方向或任意一个方向禁用。不过你是对的,如果必须在一个或两个地方使用它,那么它将非常适合,否则创建一个新类并执行它是没有意义的。@DineshBob感谢您的回答。对于我的案例来说,这无疑是最好的解决方案之一,因为只有在需要此功能的活动中,应用程序才是为一个简单的项目而设计的,而不是为生产使用。此外,这个解决方案将减轻我为自定义VIEWPAGER编写额外代码的负担。最好的解决方案是,如果您想禁用两个方向的刷卡,就不需要编写自定义的查看程序。我不认为这是最好的解决方案。如果您编写自定义的viewpager,则该viewpager可以在许多布局中重复使用。但是在这种方法中,您必须在所有布局中添加透明视图。自定义viewpager提高了代码的可读性和可维护性,因为viewpager的所有启用和禁用都会进入viewpager本身。这些逻辑不会在您的活动或片段中杂乱无章。因为问题是“是否可以在不定义自定义viewpager类的情况下执行此操作”,我已经回答了透明视图解决方案。stackoverflow中已经有很多自定义的viewpager解决方案。是的,我自己也使用过自定义的viewpager,用于在两个方向或任意一个方向禁用。不过你是对的,如果必须在一个或两个地方使用它,那么它将非常适合,否则创建一个新类并执行它是没有意义的。@DineshBob感谢您的回答。对于我的案例来说,这无疑是最好的解决方案之一,因为只有在需要此功能的活动中,应用程序才是为一个简单的项目而设计的,而不是为生产使用。此外,这个解决方案将减少我为自定义viewPager编写额外代码的负担。是的,实际上这正是我所需要的。但是因为我已经用progressLayout实现了所有东西,所以我更喜欢使用@Dinesh Bob建议的透明视图,而不是更改代码。是的,实际上这正是我需要的。但是因为我已经用progressLayout实现了所有东西,所以我更喜欢使用@Dinesh Bob建议的透明视图,而不是更改代码。