代码和效果图如上,请问
1,如何将按钮紧密连接在一起,像扫雷游戏那样?我设置了margin,都不行。
2,如何在点击其中一个按钮后,获取它在gridlayout的位置呢?代码如下,没有效果
/**
点击事件
*/
private View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Button btn = (Button)v;
GridLayout.LayoutParams params = (GridLayout.LayoutParams)btn.getLayoutParams();
GridLayout.Spec spec = params.rowSpec;
Log.d("AAA",params.rowSpec + "aa");
}
Terdapat jidar antara butang, yang disebabkan oleh gaya lalai Butang sistem. Imej latar belakang gaya lalai Button ialah insetDrawable dengan ruang putih di sekelilingnya. Untuk menyelesaikan masalah ruang putih, anda boleh menetapkan latar belakang untuk Butang sendiri, supaya jurang dapat dihapuskan.
GridLayout berbeza daripada GridView kerana ia hanya bertanggungjawab untuk peletakan kawalan kanak-kanak dan tidak bertanggungjawab untuk merekodkan maklumat lokasi kawalan kanak-kanak dan pengedaran peristiwa klik. Ini memerlukan anda memantau setiap sub-kawalan secara individu.
Untuk mendapatkan kedudukan sub-kawalan dalam GridLayout, ia bergantung pada sama ada kod anda dijana secara dinamik dan tidak dikonfigurasikan melalui fail xml Anda boleh mengikat maklumat kedudukannya sendiri ke sub-kawalan melalui View.setTag () apabila menjana sub-kawalan Pada kawalan, dapatkan maklumat kedudukan melalui View.getTag() dalam acara onClick().
Semoga ini membantu.
Hanya tetapkan lebar paparan item kepada match_parnet
Adakah saya perlu menggunakan GridLayout? Anda boleh menggunakan GridView atau RecycleView sebaliknya