#android #fragment #padding #swipe
#Android #фрагмент #заполнение #проведите пальцем
Вопрос:
Привет, ребята, я новичок в Android, поэтому, пожалуйста, потерпите, если я задаю глупый вопрос. Я пытаюсь реализовать жест прокрутки влево и вправо в listfragment и перезагрузить фрагмент с другим расположением на салфетке. Но движение салфетки работает в углах моего списка (т. Е. Если корневой макет дополнен). Если я попытаюсь провести пальцем, коснувшись представления списка, это не сработает. Пожалуйста, помогите. Скриншот проблемы здесь, вот мой метод действия::
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_actionable);
initialize();
replaceFragment(factordetailsFrag);
//addDataToInvoicetable();
frag_container.setOnTouchListener(new OnSwipeTouchListener(this) {
@Override
public void onSwipeLeft() {
//replaceFragment(invoiceDetailsFrag);
replaceFragment(list_view_demo_frag);
}
@Override
public void onSwipeRight() {
replaceFragment(factordetailsFrag);
}
});
/*list_view_demo_frag.getListView().setOnTouchListener(new OnSwipeTouchListener(this){
@Override
public void onSwipeLeft() {
//replaceFragment(invoiceDetailsFrag);
replaceFragment(list_view_demo_frag);
}
@Override
public void onSwipeRight() {
replaceFragment(factordetailsFrag);
}
});*/
//ListView view = (ListView)findViewById(and);
}
ListFragmentDemoClass::
public class ListFragmentDemo extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.custom, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.Planets, android.R.layout.simple_list_item_1);
ListViewAdapter adapter = new ListViewAdapter(getActivity(), getData());
setListAdapter(adapter);
}
private ArrayList<invoiceDetailsModel> getData() {
ArrayList<invoiceDetailsModel> returnlist = new ArrayList<>();
invoiceDetailsModel obj1 = new invoiceDetailsModel();
obj1.setAmount("1000");
obj1.setInvNum("AB--nsdfj");
obj1.setApprovedAmount("200");
returnlist.add(obj1);
invoiceDetailsModel obj2 = new invoiceDetailsModel();
obj2.setAmount("1030");
obj2.setInvNum("GF--nsdfj");
obj2.setApprovedAmount("20");
returnlist.add(obj2);
invoiceDetailsModel obj3 = new invoiceDetailsModel();
obj3.setAmount("10000");
obj3.setInvNum("AT");
obj3.setApprovedAmount("200");
returnlist.add(obj3);
for (int i=0; i<400;i ){
invoiceDetailsModel obj = new invoiceDetailsModel();
obj.setAmount("10000");
obj.setInvNum("AT--" Integer.toString(i));
obj.setApprovedAmount("200");
returnlist.add(obj3);
}
return returnlist;
}
@Override
public void setEmptyText(CharSequence text) {
super.setEmptyText(text);
}
}
Мой класс адаптера::
public class ListViewAdapter extends BaseAdapter {
private ArrayList<invoiceDetailsModel> listData;
private LayoutInflater layoutInflater;
Activity activity;
TextView txtFirst;
TextView txtSecond;
TextView txtThird;
TextView txtFourth;
public ListViewAdapter(Activity activity, ArrayList<invoiceDetailsModel> list){
super();
this.activity=activity;
this.listData=list;
/*for (invoiceDetailsModel temp: listData){
Log.i("sammy",temp.getAmount());
Log.i("sammy",temp.getApprovedAmount());
Log.i("sammy",temp.getInvNum());
}*/
}
@Override
public int getCount() {
Log.i("sammy","The list is called with size::" listData.size());
if (listData==null){return 0;}
return listData.size();
}
@Override
public Object getItem(int position) {
if (listData==null){ return null;}
return listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null){
//LayoutInflater.from(activity).inflate()
holder = new ViewHolder();
this.layoutInflater = activity.getLayoutInflater();
convertView=layoutInflater.inflate(R.layout.colmn_row, null);
convertView.setTag(holder);
holder.invNumView = (TextView) convertView.findViewById(R.id.invNum);
holder.amountView = (TextView) convertView.findViewById(R.id.amount);
holder.approvedAmountView = (TextView) convertView.findViewById(R.id.approvedAmnt);
} else {
holder = (ViewHolder) convertView.getTag();
}
// holder = new ViewHolder();
if (listData!=null){
holder.invNumView.setText(listData.get(position).getInvNum());
holder.amountView.setText(listData.get(position).getAmount());
holder.approvedAmountView.setText(listData.get(position).getApprovedAmount());
}
return convertView;
}
/*@Override
public boolean isEnabled(int position) {
return false;
}*/
class ViewHolder {
TextView invNumView;
TextView amountView;
TextView approvedAmountView;
}
}
Комментарии:
1. Почему вы не используете ViewPager?
2. Я очень новичок в Android, поэтому не могли бы вы указать мне правильное направление.
3. Взгляните на эту ссылку journaldev.com/10096/android-viewpager-example-tutorial
4. привет @SamuelRobert спасибо.. сообщение действительно хорошее, и оно мне очень помогло.. я могу заставить салфетку работать в кратчайшие сроки.