Android 自定义文本视图轻微移动
我有一个Android 自定义文本视图轻微移动,android,Android,我有一个文本视图,位于RelativeLayout中,由于某种原因,它会稍微向左移动,然后返回到其原始位置。它只发生了一小部分秒,但它是明显的和恼人的。这似乎也是随机发生的 我不知道那是什么,但几乎什么都试过了 它大约每200毫秒更新一个新字符,并在onDraw()方法上绘制线条 private Handler mHandler = new Handler(); private LinesView methodView; @Override public View onCreateView(L
文本视图
,位于RelativeLayout
中,由于某种原因,它会稍微向左移动,然后返回到其原始位置。它只发生了一小部分秒,但它是明显的和恼人的。这似乎也是随机发生的
我不知道那是什么,但几乎什么都试过了
它大约每200毫秒更新一个新字符,并在onDraw()方法上绘制线条
private Handler mHandler = new Handler();
private LinesView methodView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){
................
//Set up TextView to display the method
methodView = (LinesView) v.findViewById(R.id.MC_title);
methodView.setNumberOfBells(method.getPlayingOn());
methodView.setTextSize(24);
methodView.setTypeface(Typeface.MONOSPACE);
methodView.setText(" ");
methodView.setTextColor(Color.BLACK);
methodView.setBackgroundColor(Color.WHITE);
methodView.setClickable(false);
.....................
public class DisplayMethod extends AsyncTask<Void,Void,Void>{
@Override
protected synchronized Void doInBackground(Void... arg0) {
...........................
mHandler.post(new Runnable() {
@Override
public void run() {
methodView.clearText();
//Ensures the view draws the lines
methodView.drawLines(true);
//Sets which bell the user is playing
methodView.setBell(bellNumberTextViews.get(bellNumberTextViews.size() - 1).getText().toString());
}
});
........................
//Displays the correct amount of text on screen
methodView.setLimitingText(method.getPlayingOn(), cText, 6);
.........................
}
}
}
下面是xml布局
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="160dp" >
<project.android.bellringing.views.LinesView
android:id="@+id/MC_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerInParent="true"/>
</RelativeLayout>
我认为这里的问题是您的文本视图的宽度是wrap\u content
。这意味着它将根据其内容进行拉伸/收缩。如果您说每隔200毫秒您的TextView
就会更新一次,那么可能有一段时间它必须进行装配操作
这就是我要做的:
- 将
layout\u width
更改为match\u parent
,然后查看发生这种情况的原因
200
毫秒(0.2秒)是查看实际发生情况的非常短的时间。尝试将其设置为更大的延迟(比如5000毫秒),看看是否可以区分它发生的原因
- 如果没有,请尝试使用调试器,并逐步查看是什么真正使您的
TextView
调整了大小
您能否粘贴该文本视图的布局,以及相对视图
?
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="160dp" >
<project.android.bellringing.views.LinesView
android:id="@+id/MC_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerInParent="true"/>
</RelativeLayout>