0

Auparavant, j'utilisais ViewPager dans la classe d'activité pour le curseur d'image mais il y avait un problème que j'ai posté here. donc, j'ai ajouté un fragment et j'essaie d'y ajouter ViewPager pour le curseur d'image mais pas de chance. code exécuté avec succès mais ViewPager n'affiche pas son contenu.ViewPager dans le fragment ne fonctionne pas rien n'apparaît

En fait, je veux utiliser image slider dans ma page d'accueil et aussi besoin de la fonctionnalité pour ouvrir l'application de URL Toute aide! Merci d'avance.

ici est xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<android.support.v4.view.ViewPager 
    android:id="@+id/view_pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
</LinearLayout> 

ici est MainActivity.java

public class MainActivity extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener { 
IAppManager imService; 
Boolean mIsBound=false; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    startService(new Intent(this, BackgroundService.class)); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 
    navigationView.setItemIconTintList(null); 
    Fragment fragment= new HomeFragment(); 
    if (fragment != null) { 
     FragmentManager fragmentManager = getSupportFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     fragmentTransaction.replace(R.id.container_body, fragment); 
     fragmentTransaction.commit(); 

     // set the toolbar title 
     getSupportActionBar().setTitle("Home"); 
    } 
    } 
} 

ici est classe fragment

public class HomeFragment extends Fragment { 

ViewPager viewPager; 
Timer timer; 
@Override 
public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_home, container, false); 
    //image slider 
    viewPager = (ViewPager) rootView.findViewById(R.id.view_pager); 
    ImageAdapter adapter = new ImageAdapter(getActivity()); 
    viewPager.setAdapter(adapter); 
    //viewPager.setPageTransformer(false, new DepthPageTransformer()); 


    return super.onCreateView(inflater, container, savedInstanceState); 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    return super.onOptionsItemSelected(item); 
} 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    } 
} 

ici est classe adaptateur

public class ImageAdapter extends PagerAdapter { 
Context context; 
private int[] GalImages = new int[] { 
     R.drawable.a1, 
     R.drawable.a2, 
     R.drawable.a3, 
     R.drawable.a4, 
}; 
public ImageAdapter(Context context){ 
    this.context=context; 
} 
@Override 
public int getCount() { 
    return GalImages.length; 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view == ((ImageView) object); 
} 

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    ImageView imageView = new ImageView(context); 
    //int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium); 
    //imageView.setPadding(padding, padding, padding, padding); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
    imageView.setImageResource(GalImages[position]); 
    ((ViewPager) container).addView(imageView, 0); 
    return imageView; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    ((ViewPager) container).removeView((ImageView) object); 
} 


} 

Répondre

1

Vous affichez la mauvaise vue dans votre OnCreateView de votre fragment. Vous gonflez rootView, alors vous devriez retourner ça!

Essayez de remplacer le:

super.onCreateView de retour (gonfleur, récipient, savedInstanceState);

avec

retour rootView;

+0

merci beaucoup. tu as sauvé ma journée. votre réponse sur la question de lien n'était pas ma solution. –