GridLayout重叠细胞?

时间:2015-10-12 20:30:19

标签: android android-layout android-view android-gridlayout

出于某种原因,我的public class Tab1Discover extends Fragment { @InjectView(R.id.buttonLille) Button _lilleButton; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.tab_1_disc1_main, container, false); ButterKnife.inject(this, rootView); _lilleButton.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { // Start the Signup activity Intent intent = new Intent(getActivity(), Tab1City.class); startActivity(intent); } }); return rootView; } 偶尔会重叠细胞。

GridLayoutrows的数量超过2时会发生这种情况。例如:

- 如果我的网格中有3个对象,每个对象的不同columns范围为0-2,row number为1,row span为0,则只有2 {将显示{1}}。 1 column number将正常显示,rows中的2个将显示为彼此重叠!

- 如果有5个对象,每个对象的不同row范围为0-4,rows为1,row number为0,则只有3 {{1}将显示! row span中的1个将正常显示,column number中的2个将显示彼此重叠,然后另外2个rows将显示彼此重叠。

以下是我的代码片段,简化:

rows

他们被添加到的视图:

rows

1 个答案:

答案 0 :(得分:0)

发现问题。 NO CLUE为什么要修复它,但我想你不应该使用跨度为1的其他spec

    GridLayout.Spec rowSpec;
    if(span == 1){
        rowSpec = GridLayout.spec(row);
    }
    else{
        rowSpec = GridLayout.spec(row, row + span);
    }
    GridLayout.Spec columnSpec = GridLayout.spec(column);