2014-08-31 28 views
0

我有2个TwoWayView在彼此。内部是TWB,外部是TWA。TwoWayView在TwoWayView onItemClick不工作

问题是TWA需要是可点击的,但是onitemclick函数只能在onitemLongclick事件中运行。

TWA的持有人的xml:

<RelativeLayout 
     android:layout_width="200dp" 
     android:layout_height="match_parent" 

     > 

     <org.lucasr.twowayview.TwoWayView 

      android:id="@+id/innerView" 
      android:focusable="false" 

      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </RelativeLayout> 
在TWA的适配器

我尝试禁用所有可点击和可聚焦的事情TWB:

 viewHolder.innerView.setAdapter(innerListAdapters.get(position)); 
     viewHolder.innerView.setClickable(false); 
     viewHolder.innerView.setLongClickable(false); 
     viewHolder.innerView.setFocusable(false); 
     viewHolder.innerView.setItemsCanFocus(false); 
     viewHolder.innerView.setOnItemClickListener(null); 
     viewHolder.innerView.setOnItemLongClickListener(null); 
     viewHolder.innerView.setOnTouchListener(null); 
     viewHolder.innerView.setChoiceMode(TwoWayView.ChoiceMode.NONE); 
     viewHolder.innerView.setFocusableInTouchMode(false); 

这是我尝试设置onItemClick和onItemLongClick到TWA:

friendList.setAdapter(new FriendsAdapter(getActivity(), friends)); 
     friendList.setLongClickable(true); 
     friendList.setClickable(true); 
     friendList.setItemMargin(10); 

     //final FriendsAdapter adapter = (FriendsAdapter) friendList.getAdapter(); 
     friendList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
       utils.sendToLog("l " + l + ""); 

       friendListItemClicked(i); 

      } 
     }); 

     friendList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 


      @Override 
      public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { 
       friendListItemLongClicked(i); 

       return true; 
      } 
     }); 

任何人都可以帮助我吗?

+0

你有与可聚焦=真试过吗? – hoomi 2014-08-31 08:52:41

+0

是的,但没有什么 – MegaX 2014-08-31 08:56:40

+0

除布局视图外,您还有其他任何布局吗? – hoomi 2014-08-31 08:59:41

回答

0

我做到了:)

问题是innerView做了onClick事件。所以我不得不将我的普通onItemClick与内部绑定在一起。就像在TWB中模拟TWA的项目一样。

这里是未来的代码:)

viewHolder.innerView.setDescendantFocusability(RelativeLayout.FOCUS_BLOCK_DESCENDANTS); 

     { 
      final AdapterView fParent = (AdapterView) parent; 
      final View fView = rowView; 
      final int fInt = position; 
      final long fLong = rowView.getId(); 

      AdapterView.OnItemClickListener cross = new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
        listener.onItemClick(fParent,fView, fInt, fLong); 
       } 
      }; 
      viewHolder.innerView.setOnItemClickListener(cross); 
     } 
相关问题