Viewを拡張するクラスを作成しました。これはonDrawメソッドです。プログラムは迷路を作成し、高さと幅を適切に読み取るために、onDrawメソッドでそれらを呼び出す必要があるように見えました(そうでない場合は、両方に対して0が返されます)。これはすべてを台無しにしているものかもしれません。ただし、ペイントされたビューのセクションに表示される正方形の間隔に基づいて、正しい高さが得られます。
ペイントされていないように見えるビューのセクションは、コンテキストメニューのサイズとほぼ同じであり、スペアと一致しません。私はこの問題を抱えている他の人を探しましたが、他の誰もこの問題を抱えていないようです。私が知る限り、私は彼らと特に異なることは何もしていません。私が提供できる他の洞察があれば、私に知らせてください。
私はこのスタック全体のオーバーフローに慣れていないため、まだ写真を投稿できません=(したがって、私は可能な限り現象を説明しようとしました。
ありがとう!
@Override
public void onDraw(Canvas canvas) {
if(firstRun){
width = getMeasuredWidth();
height = getMeasuredHeight();
MazeMake();
invalidate();
}else
for (int i = 0; i < c; i++)
for (int j = 0; j < r; j++) {
grid[i][j].paintSq(canvas);
}
}
@Override
protected void onMeasure(int wMeasureSpec, int hMeasureSpec) {
int measuredHeight = measure(hMeasureSpec);
int measuredWidth = measure(wMeasureSpec);
setMeasuredDimension(measuredHeight, measuredWidth);
}
private int measure(int measureSpec) {
int specMode = MeasureSpec.getMode(measureSpec);
int specSize = MeasureSpec.getSize(measureSpec);
if (specMode == MeasureSpec.UNSPECIFIED)
return 500;
else {
return specSize;
}
}