我最近注意到,当我在Android 4.1.1中检查我的应用程序时,我的内容离开了屏幕,但在上面的4.2.2中运行良好。请查看屏幕截图。
是的,它是一个双语应用程序(英语/泰米尔语)。经过一些研究,我发现英文ListItem运作良好,但泰米尔语导致问题
布局代码:
activity_latest_news.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".LatestNews" >
<ListView
android:id="@+id/LatestNewsView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" >
</ListView> </RelativeLayout>
latest_news_single_view.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/LatestNews_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="@string/latest_news_dummy_title"
android:textSize="15sp" />
<TextView
android:id="@+id/LatestNews_description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@id/LatestNews_title"
android:text="@string/latest_news_dummy_desc"
android:textColor="@color/getCCC"
android:textSize="14sp" />
<TextView
android:id="@+id/LatestNews_posted_on"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/LatestNews_description"
android:paddingLeft="3dp"
android:paddingTop="2dp"
android:text="@string/latest_news_posted"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#911991" />
<ImageView
android:id="@+id/latest_news_addfav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/LatestNews_posted_on"
android:src="@drawable/star"
android:layout_alignParentRight="true" />
</RelativeLayout>
这是Unicode问题吗?还是布局问题?
还请看看两个模拟器。如果你注意到,在4.1.1中主题就像灰白色,而在4.2.2中是完全白色..甚至可绘制(刷新图像)看起来很奇怪(是的,我知道我没有为mdpi设置单独的drawable, hdpi等)但是造成差异的原因是什么?这是应用主题问题吗?
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
尝试更改下面的布局并检查会发生什么。
您的列表视图布局:
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LatestNewsView"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
行布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/LatestNews_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/latest_news_dummy_title"
android:textSize="15sp" />
<TextView
android:id="@+id/LatestNews_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/LatestNews_title"
android:text="@string/latest_news_dummy_desc"
android:textColor="@color/getCCC"
android:textSize="14sp" />
<TextView
android:id="@+id/LatestNews_posted_on"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/LatestNews_description"
android:paddingLeft="3dp"
android:paddingTop="2dp"
android:text="@string/latest_news_posted"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#911991" />
<ImageView
android:id="@+id/latest_news_addfav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/LatestNews_posted_on"
android:src="@drawable/star"
android:layout_alignParentRight="true" />
</RelativeLayout>
图像问题:
你可以看到一个模拟器是Nexus S,一个是Nexus One,因此它们的ppi值存在差异,导致问题。你需要为相应的密度设置合适的图像。
更新 check this它可能会有所帮助
答案 1 :(得分:0)
尝试并手动指定每个文本视图的行数。例如,将第一个TextView更改为如下所示:
<TextView
android:id="@+id/LatestNews_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:singleLine="false"
android:maxLines="3"
android:ellipsize="end"
android:text="@string/latest_news_dummy_title"
android:textSize="15sp" />
请注意,我添加了:
android:singleLine="false" <!-- Allows content to wrap into other lines -->
android:maxLines="3" <!-- Makes maximum no. of line wraps = 3 -->
android:ellipsize="end" <!-- Adds an ellipsis (...) to the end of line-->
附注:您正在混合fill_parent
和match_parent
。他们做同样的事情。为了更加一致,请坚持match_parent
。
编辑:另外,摆脱layout_alignParentRight="true"
。我不认为你需要它,因为宽度已经填充父视图。使用layout_alignParentLeft =“true”就足够了,因为英语和泰米尔语都是从左到右书写的。