import android.app.Activity;
import android.os.Build;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import com.retail.R;
import com.retail.beacons.beaconModel.OfferBeaconData;
import com.retail.manager.UserProfileManager;
import com.retail.ui.view.RobotoLightTextVew;
import com.squareup.picasso.Picasso;
import java.util.List;
/**
* Created by mahendra.chhimwal on 1/14/2016.
*/
public class BeaconOffersPagerAdapter extends PagerAdapter {
private Activity mContext;
private List<OfferBeaconData.OfferItem> mOfferItems;
public BeaconOffersPagerAdapter(Activity context, List<OfferBeaconData.OfferItem> offerItems) {
this.mContext = context;
this.mOfferItems = offerItems;
}
@Override
public int getCount() {
return mOfferItems == null ? 0 : mOfferItems.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(final ViewGroup container, final int position) {
View view;
LayoutInflater inflater = LayoutInflater.from(mContext);
view = inflater.inflate(R.layout.item_beac_off_pager_item, container, false);
ImageView offerItemImage = (ImageView) view.findViewById(R.id.iv_offer_image);
RobotoLightTextVew tvWelcomeMsg = (RobotoLightTextVew) view.findViewById(R.id.tv_welcome_msg);
RobotoLightTextVew upperTitle = (RobotoLightTextVew) view.findViewById(R.id.tv_upper_title);
RobotoLightTextVew bottomTitle = (RobotoLightTextVew) view.findViewById(R.id.tv_bottom_title);
RobotoLightTextVew discountText = (RobotoLightTextVew) view.findViewById(R.id.tv_offer_discount);
//Updating views
Picasso.with(mContext).load(mOfferItems.get(position).getOfferProduct().getImageUri()).into(offerItemImage);
upperTitle.setText(mOfferItems.get(position).getOfferTitle());
String userName = UserProfileManager.getInstance().getName();
if (userName != null && userName.length() > 0) {
int toIndex = userName.indexOf(" ");
if (toIndex != -1) {
userName = userName.substring(0, toIndex);
}
tvWelcomeMsg.setVisibility(View.VISIBLE);
tvWelcomeMsg.setText(mContext.getString(R.string.welcome_greeting, userName));
}
bottomTitle.setText(mOfferItems.get(position).getOfferSecondTitle());
discountText.setText("" + mOfferItems.get(position).getOfferProduct().getMaxDiscount() + "% off");
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
erstellen können Sie einfache PagerAdapter für diese perpose verwenden. Erweitern Sie Ihre Ansichten wie RecyclerViewAdapter. Oben ist ein Beispiel, das ich in meinem Code verwende. Keine Notwendigkeit, Fragment auch zu verwenden.
ist es besser, View Pager für diesen Zweck zu verwenden. und dafür müssen Sie nicht so viele Fragmente erstellen. Ein einzelnes Fragment wird zur Darstellung Ihrer Daten verwendet. aber es aktualisiert seine Ansicht, wenn Sie die Seite in Viewpager ändern –
Verwenden Sie [diese Bibliothek, überprüfen Sie die Antwort] (http://stackoverflow.com/a/35519128/2826147) –
Vielen Dank für die schnelle Antwort, können Sie auf einige Beispiel umleiten von der Sorte? – ebro52