GVKun编程网logo

有没有办法通过Fragment设置android:windowSoftInputMode?(android:windowsoftinputmode="adjustresize")

16

本文将介绍有没有办法通过Fragment设置android:windowSoftInputMode?的详细情况,特别是关于android:windowsoftinputmode="adjustresi

本文将介绍有没有办法通过Fragment设置android:windowSoftInputMode?的详细情况,特别是关于android:windowsoftinputmode="adjustresize"的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Android FragmentManage FragmentTransaction 介绍、Android FragmentTransactionExtended:使Fragment以多种样式动画切换、android InputManager injectInputEvent、Android PhoneGap:android:windowSoftInputMode似乎不起作用的知识。

本文目录一览:

有没有办法通过Fragment设置android:windowSoftInputMode?(android:windowsoftinputmode=

有没有办法通过Fragment设置android:windowSoftInputMode?(android:windowsoftinputmode="adjustresize")

android:windowSoftInputMode通常设置在一个Activity上,但我将所有内容设置为一个Activity切换到不同的Fragments以支持tabbing,我需要不同的软输入模式的片段.

我的实际问题是adjustPan导致webviews中的文本视图被键盘覆盖,adjustResize正在调整我用于计算的视图,我认为为每个片段设置不同的软输入模式将是一个很好的解决方法.

解决方法

试试你的片段的每个onCreateView
getActivity().getwindow().setSoftInputMode(WindowManager.LayoutParams.soFT_INPUT_ADJUST_RESIZE);

我希望它适合你并回复

Android FragmentManage FragmentTransaction 介绍

Android FragmentManage FragmentTransaction 介绍

OSC 请你来轰趴啦!1028 苏州源创会,一起寻宝 AI 时代

FragmentManage:

FragmentManager 能够实现管理 activity 中 fragment. 通过调用 activity 的 getFragmentManager () 取得它的实例.

FragmentManager 可以做如下一些事情:
1、使用 findFragmentById () (用于在 activity layout 中提供一个 UI 的 fragment) 或 findFragmentByTag ()
   (适用于有或没有 UI 的 fragment) 获取 activity 中存在的 fragment
2、将 fragment 从后台堆栈中弹出,使用 popBackStack () (模拟用户按下 BACK 命令).
3、使用 addOnBackStackChangeListener () 注册一个监听后台堆栈变化的 listener.
 

FragmentTransaction:

      FragmentTransaction 对 fragment 进行添加,移除,替换,以及执行其他动作。
从 FragmentManager 获得一个 FragmentTransaction 的实例 :

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

每一个事务都是同时要执行的一套变化。可以在一个给定的事务中设置你想执行的所有变化,使用诸如 add (), remove (), 和 replace (). 然后,要给 activity 应用事务,必须调用 commit ().

在调用 commit () 之前,你可能想调用 addToBackStack (), 将事务添加到一个 fragment 事务的 back stack.  这个 back stack 由 activity 管理,并允许用户通过按下 BACK 按键返回到前一个 fragment 状态.

举个例子,这里是如何将一个 fragment 替换为另一个,并在后台堆栈中保留之前的状态:
 // Create new fragment and transaction  Fragment newFragment = new ExampleFragment();  FragmentTransaction transaction = getFragmentManager().beginTransaction();  // Replace whatever is in the fragment_container view with this fragment,  // and add the transaction to the back stack  transaction.replace(R.id.fragment_container, newFragment);  transaction.addToBackStack(null);  // Commit the transaction  transaction.commit();

在这个例子中,newFragment 替换了当前 layout 容器中的由 R.id.fragment_container 标识的 fragment. 通过调用 addToBackStack (), replace 事务被保存到 back stack, 因此用户可以回退事务,并通过按下 BACK 按键带回前一个 fragment.

如果添加多个变化到事务 (例如 add () 或 remove ()) 并调用 addToBackStack (), 然后在你调用 commit () 之前的所有应用的变化会被作为一个单个事务添加到后台堆栈,BACK 按键会将它们一起回退.

添加变化到 FragmentTransaction 的顺序不重要,除以下例外:
  • 必须最后调用 commit ().
  • 如果添加多个 fragment 到同一个容器,那么添加的顺序决定了它们在 view hierarchy 中显示的顺序.
当执行一个移除 fragment 的事务时,如果没有调用 addToBackStack (), 那么当事务提交后,那个 fragment 会被销毁,并且用户不能导航回到它。有鉴于此,当移除一个 fragment 时,如果调用了 addToBackStack (), 那么 fragment 会被停止,如果用户导航回来,它将会被恢复.

提示:对于每一个 fragment 事务,你可以应用一个事务动画,通过在提交事务之前调用 setTransition () 实现.

调用 commit () 并不立即执行事务。恰恰相反,它将事务安排排期,一旦准备好,就在 activity 的 UI 线程上运行 (主线程). 如果有必要,无论如何,你可以从你的 UI 线程调用 executePendingTransactio ns () 来立即执行由 commit () 提交的事务.  但这么做通常不必要,除非事务是其他线程中的 job 的一个从属.

警告: 你只能在 activity 保存它的状态 (当用户离开 activity) 之前使用 commit () 提交事务.

如果你试图在那个点之后提交,会抛出一个异常。这是因为如果 activity 需要被恢复,提交之后的状态可能会丢失。对于你觉得可以丢失提交的状况,使用 commitAllowingStateLoss ().

 

 

 

 

 

 

/**
* @author 张兴业
* 邮箱: xy-zhang#163.com
* android 开发进阶群: 278401545
*
*/

Android FragmentTransactionExtended:使Fragment以多种样式动画切换

Android FragmentTransactionExtended:使Fragment以多种样式动画切换



Android FragmentTransactionExtended:使Fragment以多种样式动画切换

附录文章1的第三方库帮助Android开发者实现了Android view多姿多彩的动画切换,但也只是停留在Android view层。更“重”的如activity和fragment,则不能用附录文章1的方式实现动画切换。
在github上的第三方开源Android FragmentTransactionExtended则帮助用户实现了Android Fragment的动画切换。
其部分实现样式在该项目的主页上有gif动图展示,Android FragmentTransactionExtended在github上的主页地址:https://github.com/DesarrolloAntonio/FragmentTransactionExtended


附录文章:
1,《Android多种View动画:EasyAndroidAnimations》链接地址:http://blog.csdn.net/zhangphil/article/details/50944816

android InputManager injectInputEvent

android InputManager injectInputEvent

我读过this.我无法编译coredump给出的答案.我可以清楚地看到InputManager.java中的injectInputEvent(Android源代码).它也是公开的.但是我无法编译它.可能是它的私人api,有一种方法可以访问它..

解决方法:

API被隐藏.您可以通过反射访问它:

InputManager im = (InputManager) getSystemService(Context. INPUT_SERVICE);

Class[] paramTypes = new Class[2];
paramTypes[0] = InputEvent.class;
paramTypes[1] = Integer.TYPE;

Object[] params = new Object[2];
params[0] = newEvent;
params[1] = 0;

try {
    Method hiddenMethod = im.getClass().getmethod("injectInputEvent", paramTypes);
    hiddenMethod.invoke(im, params);
} catch (NoSuchMethodException | illegalaccessexception | IllegalArgumentException | InvocationTargetException e) {
    e.printstacktrace();
}

Android PhoneGap:android:windowSoftInputMode似乎不起作用

Android PhoneGap:android:windowSoftInputMode似乎不起作用

我正在开发一个基于PhoneGap的应用程序,我搜索了很多关于如何在虚拟键盘出现时使我的webview调整其高度,或者至少获得虚拟键盘的高度.我发现了很多帖子(包括stackoverflow)
android:windowSoftInputMode="adjustResize"

必须在清单中设置,我这样做了.我还发现,对于PhoneGap config.xml,有

<preference name="android-windowSoftInputMode" value="adjustResize"/>

设置,我也粘贴了.我也尝试了两个参数的组合值’stateVisible | adjustResize'(不仅仅是’adjustResize’),但在我看来它们都没有效果.我不知道,也许我做错了,但你可以查看模拟器的截图(Android 4.0.3,但我也试过4.1.2和4.2.2):
http://screencast.com/t/Mm0mw8c693 – 键盘可见
http://screencast.com/t/lZ2DomqeRR – 键盘隐藏
在屏幕截图中,我故意捕获了我的清单和config.xml设置,因此您可能会看到它们实际存在.
我甚至录制了短视频 – http://screencast.com/t/xI9PMcMJxxx

正如您所看到的,当键盘显示/隐藏时,不会发生任何视口大小调整.
我还使用console.log()检查了window.innerHeight,它对于可见和隐藏键盘都保持相同.

拜托,给我一些建议.

解决方法

如果您的应用程序处于全屏模式(在config.xml中将fullscreen设置为true),windowSoftInputMode =“adjustResize”将不起作用. Android的问题不是Cordova. the issue CB-4404在Cordova bug跟踪器中提交了几个月,但最近在Android bug跟踪器上发现了 it is working as intended.

我通过将全屏设置为false来解决了这个问题,因为我的应用程序不能全屏显示这个问题.

今天关于有没有办法通过Fragment设置android:windowSoftInputMode?android:windowsoftinputmode="adjustresize"的分享就到这里,希望大家有所收获,若想了解更多关于Android FragmentManage FragmentTransaction 介绍、Android FragmentTransactionExtended:使Fragment以多种样式动画切换、android InputManager injectInputEvent、Android PhoneGap:android:windowSoftInputMode似乎不起作用等相关知识,可以在本站进行查询。

本文标签: