遇到一个小问题。我像以前一样制作了一个 ViewPager,看不出与我上次所做的代码有什么真正的区别,但它不会显示出来。没有错误或警告。只是一个空白的 Viewpager。这是代码:
MainActivity.java:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
public class MainActivity extends BaseActivity {
public ViewPager viewPager;
public PagerAdapter viewPagerAdapter;
private String strTitle = "Werkstatt";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
viewPager = (ViewPager) findViewById(R.id.CatPager);
viewPagerAdapter = new CatPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(viewPagerAdapter);
}
private class CatPagerAdapter extends FragmentPagerAdapter
{
public CatPagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
Fragment fragment = new FragmentCat();
return fragment;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
}}}
FragmentCat.java
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentCat extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = (View) inflater.inflate(R.layout.fragment_cat, container, false);
return rootView;
}
}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/CatPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
fragment_cat.xml:
<?xml version="1.0" encoding="utf-8"?>
<!-- fragment_screen_slide_page.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/textView1"
android:layout_width="247dp"
android:layout_height="33dp"
android:background="#0F0"
android:text="Something happens" />
<ListView
android:id="@+id/catListFrag"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="20dp"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:background="#F00" >
</ListView>
</LinearLayout>
这里没有找到解决方案。希望您能帮忙。
谢谢
最佳答案
它是空的,因为
@Override
public int getCount() {
// TODO Auto-generated method stub
return 0;
}
getCount
返回可用 View 数。如果返回 0,则意味着没有可用的 View ,因此永远不会调用 getItem
。
关于java - Android Viewpager 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840053/