2016-08-22 4 views
0

Я пытаюсь добавить в свой проект андроида некоторые дополнительные макеты, но я хочу сделать это с помощью Page View - вы знаете, чтобы сделать слайды макетов друг с другом. Я вижу много примеров об этом в Интернете, который, я думаю, самый лучший: this one. Но я не мог понять, как поместить этот код в мой существующий проект. Можете ли вы дать мне несколько советов по этому вопросу. Может быть, учебник или что-то еще.Реализация представления страницы в существующем проекте Android

У меня есть два макета, один из которых - activity_main.xml, а другой макет: activity_weekly_weather.xml, который в настоящее время пуст. Заранее спасибо.

+0

Вам нужно использовать ViewPager, выше url, который вы написали на вопрос, показывает все о viewpager. Вы можете справиться с этим. –

+0

Да, я понимаю общую структуру, я сделал простой пример, копируя эти классы в новом проекте. Но я не мог понять, как поместить все в мой существующий проект. Именно по этой причине я попросил о помощи. –

ответ

2

Я покажу вам, как реализовать viewpager в вашей деятельности и как установить адаптер в viewpager и показать фрагменты в viewpager.

Во-первых, вы должны добавить ViewPager в макете деятельности:

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

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabLayout" 
     android:layout_width="match_parent" 
     android:layout_height="42dp" 
     android:background="?attr/colorPrimary" 
     android:elevation="4dp" 
     app:tabIndicatorColor="@color/colorAccent" 
     app:tabMode="fixed" 
     app:tabTextColor="@color/white"/> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/tabLayout"/> 

</RelativeLayout> 

Затем следует установить адаптер и tablayout к вашему ViewPager:

ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager); 
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); 

TrialAdapter adapter = new TrialAdapter(this, getFragmentManager()); 
viewPager.setAdapter(adapter); 
tabLayout.setupWithViewPager(viewPager); 

Вы должны реализовать TrialAdapter как:

public class TrialAdapter extends FragmentStatePagerAdapter { 

    private Context context; 

    public TrialAdapter(Context context,FragmentManager fragmentManager) { 
     super(fragmentManager); 
     this.context = context; 
    } 

    @Override 
    public Fragment getItem(int position) { 
     if(position == 0){ 
      return new TrialFragment(); 
     } else{ 
      return new TrialFragment(); 
     } 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     return super.instantiateItem(container, position); 
    } 

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

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

    @Override 
    public int getItemPosition(Object object) { 
     return POSITION_NONE; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     if(position == 0){ 
      return "Tab-1"; 
     } else{ 
      return "Tab-2"; 
     } 
    } 
} 

Вы должны wri т.е ваш фрагмент как:

public class TrialFragment extends Fragment { 

    private View view; 

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

     view = inflater.inflate(R.layout.fragment_trial, container, false); 

     return view; 
    } 
} 

Наконец, вы должны создать fragment_trial.xml в макете ресурсов:

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

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:text="Trial Fragment"/> 

</RelativeLayout> 

Я рекомендую вам использовать android.app.Fragment и android.support.v13.app.FragmentStatePagerAdapter поэтому вам нужно добавить ниже линии к вашему файлу градации (модуль приложения):

compile 'com.android.support:support-v13:+' // for FragmentStatePager 
compile 'com.android.support:design:23.3.0' // for TabLayout 

Удачи бро.

+0

Пришлось внести несколько изменений в работу из-за моей структуры проекта, но это сработало! Большие усилия. Помогли много, спасибо большое :) –

+0

Добро пожаловать :) –

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