2017-12-31 63 views
0

저는 목록보기가 있으며 각 셀에는 7 개의 버튼이있는 RelativeLayout이 있습니다. 목록이 스크롤되기 전에 모든 버튼이 모든 보이는 listView 항목에 대해 (모든 트리거가) 잘 작동하지만 listView가 스크롤 된 후 일부 항목은 클릭 할 수없는 항목으로 바뀝니다 (클릭 한 항목의 어떤 버튼과 상관없이) 다른 스크롤을 한 후에는 같은 항목을 클릭 할 수있게되고, 다른 항목은 클릭 할 수 없게됩니다. 스크롤을 끝내면 일반적으로 항목이 클릭 할 수없는 것으로 나타났습니다. 또 다른 한가지는 드물게 (행에서 4-5 회 실패한 클릭 이후) 버튼이 한 번에 여러 번 트리거된다는 것입니다 (지연된 것처럼). 하지만 대개 실패한 클릭이 여러 번 발생하지는 않습니다.listView의 버튼은 항상 트리거되지 않습니다

내 원래 코드에서 arrayList라는 RelativeLayouts (listView Item 용)을 만들고 arrayList를 어댑터에 넣습니다. 각 7 개의 단추마다 (각 셀에 대해) 나는 arraylist에서 그들의 위치에 해당하는 7 개의 id를 설정했습니다. 그런 식으로 메인 클래스에서 OnClick 이벤트를 구현했습니다.

for (int i = 0; i < EXPEND_BUTTONS.length; i++) { 
      if (view.getId() == EXPEND_BUTTONS[i]) { 
       handleEmojiPanel(i); 
       break; 
      } 
      if (view.getId() == BUTTONS[i] || view.getId() == IMAGES[i]) { 
       ShowTopItem item = new ShowTopItem(getActivity(), i); 
       item.show(); 
       break; 
      } 
     } 

때문에 문제의 I 코드를 변경 : 여기 (7 중) (3 개) 버튼이다. I (2 개 버튼 만의 경우)의 getView 방법에서 어댑터 자체의 버튼에 대한 온 클릭 이벤트를 처리 :

public View getView(final int position, View convertView, ViewGroup parent) { 
     pos = position; 
     Button btn = (Button) listOfObjects.get(position).getChildAt(0); 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       ShowTopItem item = new ShowTopItem(getActivity(), position + listChosen); 
       item.show(); 
      } 
     }); 
     Button imageBtn = (Button) listOfObjects.get(position).getChildAt(2); 
     imageBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       ShowTopItem item = new ShowTopItem(getActivity(), position + listChosen); 
       item.show(); 
      } 
     }); 
     return listOfObjects.get(position); 
    } 

I는 동일한 결과를 갖는다. 아무것도 바뀌지 않았다.

나는 인터넷 전체를 들여다 보았는데, 나는 그런 문제를 겪은 유일한 사람인 것처럼 보인다.

이드는 누구에게이 문제가 될 수 있는지 알고 있습니까? 다른 코드가 필요한 경우 언제든지 문의하십시오.

답변

0

이유를 찾지 못했지만 ListView를 ScrollView로 변경했습니다. 이제는 모두 정상적으로 작동합니다. 어쩌면 ListView에 어떤 종류의 버그가있을 수 있습니다. 그러나이 경우 불만 사항을 찾지 못한 이유가 궁금합니다. 어쨌든, ScrollView에서 완벽하게 작동합니다.