基本的にボタンのように見えるカスタムビューを持つ GridView があります。グリッドビューは子なしで開始され、ユーザーがボタンを押すたびに別のカスタム ビューが追加されます。
これにはいくつかの奇妙な動作があります。onDraw のカスタム ビューでテキストや線などを描画していますが、まったく描画されないこともあります。それらは完全に空白です。描画されたグラフィックスを表示するビューと表示しないビューに関して、動作は非常にランダムに見えます。
レイアウトパラメータを設定することに関係しているように感じます。子ビューを作成したら配列に格納し、getView() で位置パラメーターに関連するビューを返します。そのため、各位置のボタンを一度だけ作成します。
そこで、質問が 2 つあります。
これを引き起こすために私は何をしていますか?
私がしていることにグリッドビューを使用する必要がありますか?
ビューを取得するためのコードは次のとおりです。
public View getView(int position, View convertView, ViewGroup parent)
{
GridButton button;
GridView gridView = (GridView)parent;
if(childBuittons.size() <= position) //if we need to create a new button
{
button = createButton(position);
int nWidth = getButtonSize(gridView);
GridView.LayoutParams params = new GridView.LayoutParams(nWidth, nWidth);
button.setLayoutParams(params);
}
else //we already have a button that we created
{
button = buttons.get(position);
}
return button;
}
いくつかの詳細情報: - gridbutton クラスは、View を拡張し、onDraw をオーバーライドしてテキストや線などのグラフィックを描画する単なるクラスです。これは頻繁に行われます) そして、四角形を押して特定の機能を実行します - 画面に収まりきらないほど多くの四角形が存在する可能性があります