私はViewPager
をアンドロイドデータバインディングを使用して実装しました。データとクリックイベントで完璧に動作しています。私はここでは、クリックイベントデータバインディングを使用したViewPagerアイテムの位置
public interface ItemClickListener {
public void onItemClick();
}
ためinterface
を作成している
は、私は、アダプタのコンストラクタでitemClickListener
を送っていますPagerAdapter
@Override
public Object instantiateItem(ViewGroup container, final int position) {
ListItemBinding binding = DataBindingUtil.inflate(mLayoutInflater, R.layout.list_item, container, false);
binding.setHandler(itemClickListener);
binding.getRoot().setTag(position);
container.addView(binding.getRoot());
return binding.getRoot();
}
の私のinstantiateItem()
です。ここで
public MatchListAdapter(Context context, ItemClickListener itemClickListener) {
mContext = context;
mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.itemClickListener= itemClickListener;
}
は私list_item.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="handler"
type="com.example.ItemClickListener" />
</data>
<LinearLayout
android:id="@+id/root_viewItem"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:onClick="@{() -> handler.onItemClick()}"
android:orientation="vertical">
//rest views and controls.
</LinearLayout>
</layout>
ある今の問題は、XMLから、その位置を渡す方法を、私がクリックした項目の位置を通過したいということでしょうか?私はxmlから自分のメソッドを呼び出して位置を渡す方法は?
からの位置の値を設定します私の意見xml? –
'DataBinding'は、xmlのビューパラメータを渡す必要がないことを処理します。 –
ありがとう、それは動作します:) –