我正在使用FLEX 4.6 SDK开发平板电脑应用程序。应用程序仅在横向模式下运行,而不是在纵向模式下运行。
我的一个视图上有一个TextInput,当它被点击时,IME(输入法编辑器)将用户带到另一个屏幕(全屏模式),该屏幕位于我的视图之上。问题是我不希望用户在输入信件时失去应用程序的视线,因为我需要他看到列表的实时过滤。
我经常阅读并发现我必须在android XML清单中添加android:imeOptions="flagNoExtractUi"
句子。我不知道在哪里放。
我使用flagNoExtractUi
句子找到了以下示例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<EditText
android:imeOptions="flagNoExtractUi"
android:id="@+id/etTextInAct"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
我尝试将其放在我的<activity>
内,作为其<intent-filter>
的兄弟,但没有任何事情发生。
接下来是我的xml清单:
<android>
<manifestAdditions><![CDATA[
<manifest android:installLocation="auto">
<!--See the Adobe AIR documentation for more information about setting Google Android permissions-->
<!--Removing the permission android.permission.INTERNET will have the side effect of preventing you from debugging your application on your device-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--<uses-permission android:name="android.permission.READ_PHONE_STATE"/>-->
<!--<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>-->
<!--The DISABLE_KEYGUARD and WAKE_LOCK permissions should be toggled together in order to access AIR's SystemIdleMode APIs-->
<!--<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>-->
<!--<uses-permission android:name="android.permission.WAKE_LOCK"/>-->
<!--<uses-permission android:name="android.permission.CAMERA"/>-->
<!--<uses-permission android:name="android.permission.RECORD_AUDIO"/>-->
<!--The ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE permissions should be toggled together in order to use AIR's NetworkInfo APIs-->
<!--<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>-->
<!--<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>-->
<application android:enabled="true">
<activity android:excludeFromRecents="false">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<EditText
android:imeOptions="flagNoExtractUi"
android:id="@+id/etTextInAct"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
</LinearLayout>
</activity>
</application>
</manifest>
]]></manifestAdditions>
</android>
当我尝试使用时,Flex 4.6 SDK发送了以下错误:error 402: Current Android sdk version doesn't support LinearLayout as xml tag
。我之前使用Flex 4.5.1 SDK尝试过它,但它也没有用。
我也尝试使用之前的<EditText>
代码,但它也给了我402错误。
我想补充一点,Flex 4.6 SDK的ADB和AAPT版本为Android Debug Bridge version 1.0.26
和Android Asset Packaging Tool, v0.2
。
在以下documentation link中声明自1.5版本以来android:imeOptions="flagNoExtractUi
包含在Andoird中,因此Flex 4.6 SDK也应该能够包含该标记。
我没有更多信息要提供,所以唯一剩下的就是寻求你的帮助。有人知道如何使用android:imeOptions="flagNoExtractUi"
我应该把它放在哪里?
答案 0 :(得分:0)
我正在努力解决同样的问题,但似乎根本没有解决方法...... :(
你不能在AIR的xml描述符中包含一个布局文件(也不会被编译器神奇地拾取),并且似乎也没有任何全局NoExtractUI标志,所以,你去..没多少尝试。
然而,您可以做的一件事就是在Adobe的bugbase中实现此功能:https://bugbase.adobe.com/index.cfm?event=bug&id=3789398
@Chris Stratton:OP正在讨论使用Adobe的AIR(mxmlc)编译器的Flex SDK,这是一个支持(其中包括)Android导出目标的跨平台工具。这显然与常规的Android编译器不兼容,当然也不支持Java,XML或任何其他Android特定资源/钩子(保存可能封装在AIR中的app的清单的一部分&# 39;自己的xml描述符文件)