yeni Parçası ile tamamen Görünüm Çağrı görünümünü değiştirmek için aşağıdaki xml dosyası vardır:Nasıl Android
<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" />
Ben görünümü çağrı cihazı üç parçaları var. fragmanın birinde Bu kodu kullanarak yeni fragman başlatmak için çalışıyorum: Ben başarıyla ViewPager mevcut fragmanının yerini açabiliyorum
FragmentTransaction trans = getFragmentManager()
.beginTransaction();
trans.replace(R.id.pager, new SubscriptionFragment());
trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
trans.addToBackStack(null);
trans.commit();
ama, benim amaca hizmet etmez ne Bunu yapmak arzusu, viewPager'da halihazırda var olan mevcut parçayı değiştirmemek, fakat görünüm çağrı cihazını görünümden çıkarmak ve yeni bir Parçayı başlatmak, böylece üst tırnakların artık görünmemesi ve ViewPager'ın görünümden geçmesidir. Bu, niyetini kullanarak yeni bir etkinlik başlattığımda çalışır. ama bir parça için çalışmıyor.
Edited:
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout, new MainFragment()).commit();
}
}
MainFragment:
public class MainFragment extends Fragment {
FragmentPagerAdapter adapterViewPager;
ViewPager viewPager;
String title[] = {"Services", "You", "History"};
// TODO: Rename and change types and number of parameters
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
/* Inflate the layout for this fragment */
View view = inflater.inflate(R.layout.fragment_view_pager, container, false);
/*************************************/
//CALLING HISTORY API
// loadSubscriptions();
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ViewPagerAdapter mAdapter = new ViewPagerAdapter(getFragmentManager());
ViewPager mPager = (ViewPager) getView().findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
}
public static class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int num) {
if (num == 0) {
return new ServicesFragment();
} else {
return new HistoryFragment();
}
}
@Override
public int getCount() {
return 2;
}
}
}
activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
</FrameLayout>
fragment_view_pager.xml
<?xml version="1.0" encoding="utf-8"?>
<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" />
servicefragment olarak
: Ben kullanarak yeni fragman açımı ediyorum:
physiotherapyView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentTransaction trans = getFragmentManager()
.beginTransaction();
/*
* IMPORTANT: We use the "root frame" defined in
* "root_fragment.xml" as the reference to replace fragment
*/
trans.replace(R.id.pager, new SubscriptionFragment());
/*
* IMPORTANT: The following lines allow us to add the fragment
* to the stack and return to it later, by pressing back
*/
trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
trans.addToBackStack(null);
trans.commit();
}
});
çok Fragment içeride ViewPager nedir? –
@ItzikSamara kendi içinde bir etkinlik! – user3458008