作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个测试 android 应用程序,它在 RabbitMQ 服务器上监听一个主题并在 TextView 中显示消息。
一切正常,除了在添加到“输出” TextView 的每条新消息上,新文本都被绘制在旧文本之上。滚动时也会发生同样的情况,如第二张图片所示。当应用程序进入后台并再次激活时,文本将再次正常显示(见图 1)。
我的布局非常简单:我做错了什么?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="60dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Connection status" />
<TextView
android:id="@+id/status"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:saveEnabled="false"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Received messages:" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/output"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:saveEnabled="false"
android:textAppearance="?android:attr/textAppearanceSmall" />
</ScrollView>
这是我处理传入的新消息的地方:
final Handler myViewUpdateHandler = new Handler() {
// @Override
public void handleMessage(Message msg) {
switch (msg.what) {
case NEWSTATUS:
status.setText((String) msg.obj);
status.invalidate();
//also add to output
case NEWMESSAGE:
String oldText= (String) output.getText();
output.setText("");
String newText = DateUtil.getClockTimeMillis()+" "+(String) msg.obj+"\n"+oldText;
output.setText(newText);
output.invalidate();
break;
default:
throw new IllegalArgumentException("no case for:" + msg.arg1);
}
super.handleMessage(msg);
}
};
最佳答案
我遇到了完全相同的问题。就我而言,这是发生了什么以及我是如何解决的:
首先,我添加了具有全屏属性的第二个 Activity (通过 eclipse 向导)
然后我决定不使用那个花哨的动画全屏,所以我
编辑布局 XML 文件并将其更改为正常的相对 View 。
应用 list 文件表明该 Activity 仍在使用全屏主题。
我已经删除了这些行并且...问题已解决。
如果您为布局设置了全屏主题,请尝试将其更改为应用主主题。
关于android - TextView 在更新和滚动时绘制乱码的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16208790/
我是一名优秀的程序员,十分优秀!