Android ViewPager не отображается
Я пытаюсь сделать небольшое приложение, чтобы попробовать некоторые вещи для большего приложения, которое я разрабатываю. Я хочу добавить видовой пейджер, отображающий четыре изображения, я разработал только этот видовой пейджер, и он сработал, но когда я попытался добавить его в другое приложение (всего с несколькими кнопками) с тегом, он ничего не показывает, и я Я действительно застрял здесь. Можно ли добавить Viewpager таким образом? Честно говоря, у меня нет такого большого опыта в Java, я обычно программирую только C и Assembler, и я буду очень рад, если вы поможете мне.
Это XML-файл с кнопкой и включением:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:weightSum="1">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculo Rapido"
android:id="@+id/btcr"
android:layout_gravity="center_vertical"
android:layout_weight="0.16"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculo Avanzado"
android:id="@+id/button"
android:layout_centerVertical="true"
android:layout_below="@+id/btcr" />
<include layout="@layout/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:translationZ="15dp" />
Теперь MainActivity, которая содержит действие кнопки, потому что я держал Viewpager внутри Activity, которая связана с исходным макетом ViewPager.
Button siguiente;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
siguiente = (Button)findViewById(R.id.btcr);
siguiente.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent siguiente = new Intent(MainActivity.this, Main2Activity.class);
startActivity(siguiente);
}
});
}
И, наконец, код для основной деятельности mainpager, в котором используется CustomPagerAdapter, сохраненный в другом классе Java. Как я уже говорил, этот viewpager работает в одиночку, но когда я пытаюсь реализовать его здесь, с помощью тега / include, он ничего не показывает.
открытый класс MainActivity расширяет Activity {
CustomPagerAdapter mCustomPagerAdapter;
ViewPager mViewPager;
private static int currentPage = 0;
private static int NUM_PAGES = 0;
Button siguiente;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// == Setting up the ViewPager ==
mCustomPagerAdapter = new CustomPagerAdapter(this);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mCustomPagerAdapter);
final Handler handler = new Handler();
final Runnable Update = new Runnable() {
public void run() {
if (currentPage == NUM_PAGES) {
currentPage = 0;
}
mViewPager.setCurrentItem(currentPage++);
if (currentPage == 5) {
currentPage = 0;
mViewPager.setCurrentItem(currentPage++, false);
}
}
};
Timer swipeTimer = new Timer();
swipeTimer.schedule(new TimerTask() {
@Override
public void run() {
handler.post(Update);
}
}, 2000, 2000);
}
Извините, если это слишком долго, ребята, но я немного расстроен, я много чего перепробовал, но это пока не работает. Либо кнопки делают свое дело, и ViewPager не работает, либо ViewPager работает, но кнопки не работают.
Я по-настоящему оценю вашу помощь:)
2 ответа
Оказывается, мне нужно было просто простое решение. Мне пришлось поместить viewpager в файл макета моей деятельности как другой объект, просто настроив его размер и положение. И затем, на моем onCreate я вставил код моего работающего ViewPager. Все довольно просто, не требуя очередных раскладок:)
Создать новый XML-файл внутри layout
папку и назовите ее secondactivity.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:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/pager">
</android.support.v4.view.ViewPager>
</LinearLayout>
Теперь внутри вашего Main2Activity.class
менять
setContentView(R.layout.activity_main);
в
setContentView(R.layout.secondactivity);
И удалить include
из вашего предыдущего XML