0
public class SwipeExecuteListener : Java.Lang.Object, SwipeExecuteBehavior.ISwipeExecuteListener
{
private ListViewAdapter listViewAdapter;
public SwipeExecuteListener(ListViewAdapter adapter)
{
listViewAdapter = adapter;
}
public void OnSwipeStarted(int position)
{
}
public void OnSwipeProgressChanged(int position, int offset, View swipeContent)
{
}
public void OnSwipeEnded(int position, int offset)
{
int absOffset = Math.Abs(offset);
if (absOffset > 300)
{
listViewAdapter.Remove(position);
}
listViewAdapter.NotifySwipeExecuteFinished();
}
public void OnExecuteFinished(int position)
{
}
}
私はアンドロイドのためのtelerikのUIを使用してlistviewの例に取り組んでいます。私は左の私のコントロールをスワイプしていたときが、/右のは、これは私が問題を解決する方法を教えてください私のリスナークラスを使用していているTelerik自動的にアンドロイドスワイプのclossingのリストビュー
public class CityAdapter : ListViewAdapter
{
public CityAdapter(IList items)
: base(items)
{
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
LayoutInflater inflater = LayoutInflater.From(parent.Context);
View view = inflater.Inflate(Resource.Layout.city_list_item, parent, false);
return new CityViewHolder(view);
}
public override void OnBindListViewHolder(ListViewHolder holder, int position)
{
CityViewHolder viewHolder = (CityViewHolder)holder;
City city = (City)Items[position];
viewHolder.nameView.Text = city.Name;
viewHolder.countryView.Text = city.Country;
}
public override void OnBindSwipeContentHolder(ListViewHolder holder, int position)
{
RelativeLayout mainLayout = (RelativeLayout)holder.ItemView;
LinearLayout leftLayout = (LinearLayout)mainLayout.GetChildAt(0);
LinearLayout rightLayout = (LinearLayout)mainLayout.GetChildAt(1);
Button leftButton = new Button(mainLayout.Context);
leftButton.Text = "edit";
Button rightButton = new Button(mainLayout.Context);
rightButton.Text = "delete";
leftLayout.RemoveAllViews();
leftLayout.AddView(leftButton);
rightLayout.RemoveAllViews();
rightLayout.AddView(rightButton);
}
public void RefreshList()
{
}
public override void NotifyRefreshFinished()
{
base.NotifyRefreshFinished();
SwipeRefreshBehavior swipeRefreshBehavior = new SwipeRefreshBehavior();
swipeRefreshBehavior.EndRefresh(true);
}
public class CityViewHolder : ListViewHolder
{
public TextView nameView;
public TextView countryView;
public CityViewHolder(View itemView)
: base(itemView)
{
nameView = (TextView)itemView.FindViewById(Resource.Id.nameView);
countryView = (TextView)itemView.FindViewById(Resource.Id.countryView);
}
}
}
削除または編集ボタン表示されていません。
OnSwipeEnd削除ボタンの表示方法を教えてください。 absOffsetは50だけなので、私の行は削除されません。私の問題は、右側の削除ボタンをスワイプすると1秒しか表示されない場合です。ボタンを選択したままではありません。 –
SwipeExecuteListenerを削除してみます。編集を確認します – Sreeraj
OnSwipeEnd()でswipeExecuteBehavior.SwipeOffsetを設定するには –