Android在膨胀视图上采用了错误的布局
我在3个文件夹中有布局: 布局 大布局 布局xlarge 当我启动root活动时,一切正常,android正在从layout xlarge文件夹中打开视图(我使用的是属于xlarge设备的三星平板电脑) 当我开始下一个活动时,android出于某种原因从layout文件夹中获取xml文件。我已经尝试过一些显而易见的事情,比如检查xml文件中的维度,在清单文件中设置支持小屏幕、普通屏幕、大屏幕和xlarge屏幕 有一件有趣的事情是,如果我在开始活动之前写下这段代码,android将从x-large文件夹中获取xml文件,但这看起来很愚蠢(因为android有自己的逻辑从不同的布局Fodler获取xml文件) 有什么问题吗 我使用的是安卓3.0API-11 以下是普通布局示例_normal.xml:Android在膨胀视图上采用了错误的布局,android,android-layout,android-view,Android,Android Layout,Android View,我在3个文件夹中有布局: 布局 大布局 布局xlarge 当我启动root活动时,一切正常,android正在从layout xlarge文件夹中打开视图(我使用的是属于xlarge设备的三星平板电脑) 当我开始下一个活动时,android出于某种原因从layout文件夹中获取xml文件。我已经尝试过一些显而易见的事情,比如检查xml文件中的维度,在清单文件中设置支持小屏幕、普通屏幕、大屏幕和xlarge屏幕 有一件有趣的事情是,如果我在开始活动之前写下这段代码,android将从x-large
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llAssetMainWrapper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<GridView
android:id="@+id/gvSample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:gravity="center"
android:stretchMode="columnWidth" >
</GridView>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:cacheColorHint="#00000000"
android:visibility="invisible" >
</ListView>
</LinearLayout>
下面是对应的行\u sample\u normal.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flRowVOD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/icon"
android:layout_width="80dp"
android:layout_height="125dp"
android:paddingBottom="10dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:paddingTop="10dp"
android:scaleType="fitXY" />
<View
android:id="@+id/iconEmpty"
android:layout_width="80dp"
android:layout_height="150dp"
android:paddingBottom="10dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:paddingTop="10dp"
android:visibility="gone"/>
<TextView
android:id="@+id/title"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_gravity="left|bottom"
android:ellipsize="marquee"
android:textColor="#FFFFFF"
android:textSize="10sp"
android:textStyle="bold"
android:paddingBottom="10dp"
android:paddingLeft="3dp"
android:paddingRight="3dp" />
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#434343"
android:layout_gravity="bottom">
</View>
</FrameLayout>
以下是xlarge:
示例_xlarge.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llAssetMainWrapper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<GridView
android:id="@+id/gvSample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:stretchMode="columnWidth" >
</GridView>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:cacheColorHint="#00000000"
android:visibility="invisible" >
</ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flRowVOD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/icon"
android:layout_width="160dp"
android:layout_height="250dp"
android:paddingBottom="20dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="20dp"
android:scaleType="fitXY" />
<View
android:id="@+id/iconEmpty"
android:layout_width="160dp"
android:layout_height="250dp"
android:paddingBottom="20dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="20dp"
android:visibility="gone"/>
<TextView
android:id="@+id/title"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="left|bottom"
android:ellipsize="marquee"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:textStyle="bold"
android:paddingBottom="20dp"
android:paddingLeft="5dp"
android:paddingRight="5dp" />
<View
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="#434343"
android:layout_gravity="bottom">
</View>
</FrameLayout>
下面是对应的行\u sample\u xlarge.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llAssetMainWrapper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<GridView
android:id="@+id/gvSample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:stretchMode="columnWidth" >
</GridView>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:cacheColorHint="#00000000"
android:visibility="invisible" >
</ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flRowVOD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/icon"
android:layout_width="160dp"
android:layout_height="250dp"
android:paddingBottom="20dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="20dp"
android:scaleType="fitXY" />
<View
android:id="@+id/iconEmpty"
android:layout_width="160dp"
android:layout_height="250dp"
android:paddingBottom="20dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="20dp"
android:visibility="gone"/>
<TextView
android:id="@+id/title"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="left|bottom"
android:ellipsize="marquee"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:textStyle="bold"
android:paddingBottom="20dp"
android:paddingLeft="5dp"
android:paddingRight="5dp" />
<View
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="#434343"
android:layout_gravity="bottom">
</View>
</FrameLayout>
如果您的大号对应约7英寸的平板电脑,xlarge对应约10英寸的平板电脑,则更适合分别使用限定符-sw600dp和-sw720dp。以防有人遇到同样的问题:
我在使用可能从github下载的类UrlImageViewHelper时遇到了问题(不再确定)。类用于下载和散列图像。有一个代码:
if (mMetrics != null)
return;
mMetrics = new DisplayMetrics();
Activity act = (Activity) context;
act.getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
AssetManager mgr = context.getAssets();
mResources = new Resources(mgr, mMetrics, null);
这样会损坏您的资源(很明显)三星Galaxy Tab GT-P1000从布局xhdpi获取布局如果没有这个,那么它会看起来很大。检查下一个活动的xml是否放在layout large xhdpi和layout xlarge xhdpi下。我试过了,但同样的事情也发生了,他不断地从layout文件夹中获取layout,甚至没有layout large,有像这样的layout large xhdpi,layout xlarge xhdpi而不是layout large,布局XLARGE三种不同布局之间的区别是什么?请发布代码。您似乎试图通过编程方式找到考虑中的设备所需的优化布局。尝试将其留给Android资源系统,为此,您需要在特定活动的所有文件夹中使用相同的布局文件名。名称相同,我只是将名称作为示例张贴在此处,最初,它们在不同的文件夹layout:assets.xml row_assets.xml layout xlarge:assets.xml row_assets.xml检查此应用程序以确保设备显示。很酷的应用,谢谢,这是一款XLarge MDPI设备,宽1280,高752。