我在应用程序中遇到问题,当我有平板电脑和小型设备的landscape
模式应用程序时。我已将所有布局文件放在layout-land
和layout-sw600dp-land
文件夹中。我也在orientation
文件中定义了屏幕manifest
。当我浏览应用程序时,保持移动portrait
我发现错误为ResourceNotFoundException
。我怎么解决这个问题?。希望得到有利的答案。
以下是我的清单文件实现
<activity
android:name=".SplashScreenActivity"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape" >
</activity>
<activity
android:name=".ui.ForgotPassword"
android:screenOrientation="landscape" />
<activity
android:name=".ui.LoginFragment"
android:screenOrientation="landscape" />
<activity
android:name=".ui.Lending"
android:screenOrientation="landscape" />
<activity
android:name=".ui.SavedTakeOff"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="landscape" />
<activity
android:name=".ui.ItemsFragment"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="landscape" />
答案 0 :(得分:1)
如果您遵循多种布局支持,则不仅限于您已经知道的陆地和端口模式。但是为了纵向模式,您需要将文件保留在默认布局文件夹中。
MyProject/
res/
layout/ # default (portrait)
main.xml
layout-land/ # landscape
main.xml
layout-large/ # large (portrait)
main.xml
layout-large-land/ # large landscape
main.xml
答案 1 :(得分:1)
这是因为当您的设备处于纵向模式并且您尝试打开应用程序时,默认尝试加载纵向模式的资源,然后它会将方向更改为横向(基于您的清单配置)所以您可以在纵向模式下添加启动器屏幕的默认布局,这将解决您的资源未找到异常,应用程序仍然以横向模式加载。
答案 2 :(得分:0)
只需删除您的R.java即可。然后清理并重建你的项目。
答案 3 :(得分:0)
我使用这个类很简单。你打电话给这个班并检查它的手机或平板电脑
public class Utils {
public static void CopyStream(InputStream is, OutputStream os)
{
final int buffer_size=1024;
try
{
byte[] bytes=new byte[buffer_size];
for(;;)
{
int count=is.read(bytes, 0, buffer_size);
if(count==-1)
break;
os.write(bytes, 0, count);
}
}
catch(Exception ex){}
}
public static boolean isTablet(Activity activity) {
return (activity.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}}
只需在“活动”中调用此名称即可查看手机或平板电脑
if (!Utils.isTablet(this))
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);