#android #layout #android-viewpager #fragment #android-fragmentactivity
#Android #макет #android-viewpager #фрагмент #android-fragmentactivity
Вопрос:
я делаю простой viewpager, мой основной — это FragmentActivity, подобный этому:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_vtg_main);
Log.w("bug bug", " ------------------------------------------------- inicia");
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Log.w("bug bug", " ------------------------------------------------- get act");
fragmentos = new ArrayList<Fragment>();
fragmentos.add(new FragmentLineas());
fragmentos.add(new FragmentMedicamentos());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(new CustomPagerAdapter(getSupportFragmentManager()));
}
макет:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@ id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Фрагмент:
package co.com.smartmedia.vademtg;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentLineas extends Fragment {
private View myView;
public FragmentLineas() {
// TODO Auto-generated constructor stub
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
myView = super.onCreateView(inflater, container, savedInstanceState);
getActivity().setContentView(R.layout.frame_lineas_layout);
return myView;
}
}
(другой фрагмент — это тот же код, но с другим именем объекта)
и макет для каждого фрагмента следующий:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</RelativeLayout>
Ошибка, которую я получаю:
07-01 08:09:40.168: E/FragmentManager(1888): No view found for id 0x7f060000 (co.com.smartmedia.vademtg:id/pager) for fragment FragmentMedicamentos{41c4cb78 #1 id=0x7f060000}
я не знаю, что делать, это слишком просто, но когда я создаю второй фрагмент объекта:
fragmentos.add(new FragmentLineas());
fragmentos.add(new FragmentMedicamentos()); //this onee
Появляется ошибка, и если я поменяю местами эти строки, ошибка изменится на объект второго класса.
Есть идеи?
Ответ №1:
измените конструктор фрагментов на:
myView = inflater.inflate(R.layout.frame_medicamentos_layout, container, false);