2015-08-18 5 views
-1

У меня есть салфетка Activity, с двумя страницами прокрутки, я добавил содержимое для первой страницы, а на второй странице дублируется содержимое, как я могу установить другой контент на вторую страницу в моем салфетке Посмотреть?Android Swipe Посмотреть необходимую помощь

public class ListItemClicked extends ActionBarActivity { 

static Bundle extras; 

SectionsPagerAdapter mSectionsPagerAdapter; 
static ImageLoader imageLoader; 
static DisplayImageOptions options; 

ViewPager mViewPager; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.list_item_clicked); 



    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 

    extras = getIntent().getExtras(); 

    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mSectionsPagerAdapter); 


    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).build(); 
    imageLoader = ImageLoader.getInstance(); 
    imageLoader.init(config); 

    //Setup options for ImageLoader so it will handle caching for us. 
    options = new DisplayImageOptions.Builder() 
      .cacheInMemory() 
      .cacheOnDisc() 
      .build(); 



} 


    public class SectionsPagerAdapter extends FragmentPagerAdapter { 

    public SectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return PlaceholderFragment.newInstance(position + 1); 
    } 

    @Override 
    public int getCount() { 
     return 2; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     Locale l = Locale.getDefault(); 
     switch (position) { 
      case 0: 
       return getString(R.string.title_section4).toUpperCase(l); 
      case 1: 
       return getString(R.string.title_section5).toUpperCase(l); 
     } 
     return null; 
    } 
} 


public static class PlaceholderFragment extends Fragment { 


    private static final String ARG_SECTION_NUMBER = "section_number"; 


    public static PlaceholderFragment newInstance(int sectionNumber) { 
     PlaceholderFragment fragment = new PlaceholderFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) 
    { 

     View rootView = inflater.inflate(R.layout.fragment_list_item_clicked, container, false); 


     TextView pDate = (TextView) rootView.findViewById(R.id.textView); 
     pDate.setText(extras.getString("pdate")); 


     TextView ptitle = (TextView) rootView.findViewById(R.id.section_label); 
     ptitle.setText(extras.getString("pname")); 


     TextView pnText = (TextView) rootView.findViewById(R.id.textView2); 
     pnText.setText(extras.getString("pText")); 

     return rootView; 
    } 
} 

} 

ответ

1

Сайт разработчиков Android действительно имеет очень хорошее объяснение ViewPager. Вы должны проверить это: http://developer.android.com/training/animation/screen-slide.html

Вот пример, который я написал:

activity_screen_slide.xml

<android.support.v4.view.ViewPager 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

Java код:

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
... 

public class ScreenSlidePagerActivity extends FragmentActivity { 

    private static final int NUM_PAGES = 2; 
    private ViewPager mPager; 
    private PagerAdapter mPagerAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_screen_slide); 

     mPager = (ViewPager) findViewById(R.id.pager); 
     mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager()); 
     mPager.setAdapter(mPagerAdapter); 
    } 

    @Override 
    public void onBackPressed() { 
     if (mPager.getCurrentItem() == 0) { 
      super.onBackPressed(); 
     } else { 
      mPager.setCurrentItem(mPager.getCurrentItem() - 1); 
     } 
    } 

    private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { 
     public ScreenSlidePagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      //Create these fragments with your preferable names 
      switch (position) { 
       case 0: 
        return new ScreenSlidePageFragment(); 
       case 1: 
        return new ScreenSlidePageFragment2(); 
       default: 
        break; 
      } 
     } 

     @Override 
     public int getCount() { 
      return NUM_PAGES; 
     } 
    } 
} 

А вот один из ваших взглядов это должно выглядеть так, где фрагмент_страницы_страницы_страницы является одним из ваших макетов:

import android.support.v4.app.Fragment; 
... 

public class ScreenSlidePageFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page, container, false); 

     return rootView; 
    } 
} 

Для получения дополнительной информации вы должны прочитать сайт разработчиков Android.

1

Вы можете вернуть различные фрагменты, как это:

@Override 
public Fragment getItem(int position) { 
    if (position == 0) { 
     return PlaceholderFragment.newInstance(position + 1); 
    } else { 
     return anotherFragment.newInstance(); 
    } 
} 

Если вы хотите использовать один и тот же Fragment, вы можете изменить содержание в зависимости от позиции, которую вы передаете к фрагменту.

+0

newInstance (position + 1) Какова область действия параметра? – Andrew

+0

Поскольку у вас есть новый экземпляр фрагмента в классе фрагмента, в зависимости от этого нет, вы можете изменить содержимое –

+0

большое вам спасибо! – Andrew

Смежные вопросы