android-studio - android gridlayout动态多行多列的问题
PHP中文网
PHP中文网 2017-04-18 09:04:11
0
3
966

代码和效果图如上,请问

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");

}

PHP中文网
PHP中文网

认证0级讲师

모든 응답(3)
PHPzhong
  1. 시스템 버튼의 기본 스타일로 인해 버튼 사이에 여백이 발생합니다. Button 기본 스타일의 배경 이미지는 주위에 공백이 있는 insetDrawable입니다. 공백 문제를 해결하기 위해 Button의 배경을 직접 설정하여 공백을 없앨 수 있습니다.

  2. GridLayout은 GridView와는 달리 하위 컨트롤의 배치만 담당하며 하위 컨트롤의 위치 정보 기록 및 클릭 이벤트 배포에 대한 책임은 없습니다. 이를 위해서는 각 하위 컨트롤을 개별적으로 모니터링해야 합니다.
    GridLayout에서 하위 컨트롤의 위치를 ​​얻으려면 코드가 동적으로 생성되었는지, xml 파일을 통해 구성되지 않았는지에 따라 달라집니다. View.setTag(를 통해 자체 위치 정보를 하위 컨트롤에 바인딩할 수 있습니다. ) 하위 컨트롤을 생성할 때 컨트롤에서 onClick() 이벤트의 View.getTag()를 통해 위치 정보를 얻습니다.

도움이 되었기를 바랍니다.

伊谢尔伦

항목 보기 너비를 match_parnet으로 설정하세요

PHPzhong

GridLayout을 꼭 사용해야 하나요? 대신 GridView나 RecycleView를 사용해도 됩니다. 저는 GridView가 더 좋다고 생각합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿