查看传呼机指示器不显示

编程入门 行业动态 更新时间:2024-10-28 14:34:25
查看传呼机指示器不显示 - Android(View pager indicator doesn't appear - Android)

我正在使用这个库为viewPager创建一个指示器(在Android中)。 我只是想向用户展示他可以改变视图。 出于某种奇怪的原因,即使创建视图并设置它,它也不会显示。 代码如下:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); viewPager = (ViewPager) findViewById(R.id.instructionViewPager); adapter = new InstructionPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(adapter); ViewPager.OnPageChangeListener listener = new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }; viewPager.addOnPageChangeListener(listener); ViewPagerIndicator viewPagerIndicator = (ViewPagerIndicator) findViewById(R.id.view_pager_indicator); viewPagerIndicator.setupWithViewPager(viewPager); viewPagerIndicator.addOnPageChangeListener(listener);

我在.xml中使用它:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/background" android:orientation="vertical"> <TextView android:id="@+id/biometricTextLabel" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginLeft="84dp" android:layout_marginRight="84dp" android:layout_marginTop="38dp" android:text="Biometric" android:textAlignment="center" android:textColor="@android:color/white" android:textSize="18sp" /> <android.support.v4.view.ViewPager android:id="@+id/instructionViewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/view_pager_indicator" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_below="@+id/biometricTextLabel" android:layout_marginBottom="0dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_marginTop="10dp" /> <Button android:id="@+id/instructionbContinue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/instructionbBack" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_marginBottom="12dp" android:layout_marginLeft="60dp" android:layout_marginRight="60dp" android:text="Continue" android:textColor="@android:color/background_light" /> <com.github.vivchar.viewpagerindicator.ViewPagerIndicator android:id="@+id/view_pager_indicator" android:layout_width="wrap_content" android:layout_height="wrap_content" app:delimiterSize="8dp" app:itemSize="8dp" android:layout_above="@id/instructionbContinue" android:layout_marginBottom="30dp" android:layout_centerHorizontal="true" /> <Button android:id="@+id/instructionbBack" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginBottom="20dp" android:layout_marginLeft="15dp" android:layout_marginStart="15dp" android:background="@android:color/transparent" android:text="Go back" android:textColor="@android:color/white" /> </RelativeLayout>

我究竟做错了什么?

编辑:我已经添加了所有的布局的XML。

编辑2:我添加pageAdapter,很简单:

public class InstructionPagerAdapter extends FragmentPagerAdapter { List<Fragment> fragments; public InstructionPagerAdapter(FragmentManager fm) { super(fm); this.fragments = new ArrayList<Fragment>(); } public void addFragment(Fragment fragment) { this.fragments.add(fragment); } @Override public Fragment getItem(int arg0) { return this.fragments.get(arg0); } @Override public int getItemPosition(Object object) { return POSITION_UNCHANGED; } @Override public int getCount() { return this.fragments.size(); }

}

I'm using this library to create an indicator for a viewPager (in Android). I simply want to show to the user that he can change the view. For some strange reason, even when I create the view and set it up, it doesn't show. Here's the code:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); viewPager = (ViewPager) findViewById(R.id.instructionViewPager); adapter = new InstructionPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(adapter); ViewPager.OnPageChangeListener listener = new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }; viewPager.addOnPageChangeListener(listener); ViewPagerIndicator viewPagerIndicator = (ViewPagerIndicator) findViewById(R.id.view_pager_indicator); viewPagerIndicator.setupWithViewPager(viewPager); viewPagerIndicator.addOnPageChangeListener(listener);

And I have it in the .xml:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/background" android:orientation="vertical"> <TextView android:id="@+id/biometricTextLabel" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginLeft="84dp" android:layout_marginRight="84dp" android:layout_marginTop="38dp" android:text="Biometric" android:textAlignment="center" android:textColor="@android:color/white" android:textSize="18sp" /> <android.support.v4.view.ViewPager android:id="@+id/instructionViewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/view_pager_indicator" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_below="@+id/biometricTextLabel" android:layout_marginBottom="0dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_marginTop="10dp" /> <Button android:id="@+id/instructionbContinue" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/instructionbBack" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_marginBottom="12dp" android:layout_marginLeft="60dp" android:layout_marginRight="60dp" android:text="Continue" android:textColor="@android:color/background_light" /> <com.github.vivchar.viewpagerindicator.ViewPagerIndicator android:id="@+id/view_pager_indicator" android:layout_width="wrap_content" android:layout_height="wrap_content" app:delimiterSize="8dp" app:itemSize="8dp" android:layout_above="@id/instructionbContinue" android:layout_marginBottom="30dp" android:layout_centerHorizontal="true" /> <Button android:id="@+id/instructionbBack" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginBottom="20dp" android:layout_marginLeft="15dp" android:layout_marginStart="15dp" android:background="@android:color/transparent" android:text="Go back" android:textColor="@android:color/white" /> </RelativeLayout>

What am I doing wrong?

EDIT: I've added all the xml of the layout.

EDIT 2: I add the pageAdapter, it's simple:

public class InstructionPagerAdapter extends FragmentPagerAdapter { List<Fragment> fragments; public InstructionPagerAdapter(FragmentManager fm) { super(fm); this.fragments = new ArrayList<Fragment>(); } public void addFragment(Fragment fragment) { this.fragments.add(fragment); } @Override public Fragment getItem(int arg0) { return this.fragments.get(arg0); } @Override public int getItemPosition(Object object) { return POSITION_UNCHANGED; } @Override public int getCount() { return this.fragments.size(); }

}

最满意答案

看来你还没有添加任何片段到你的适配器。 如果在将适配器分配给viewpager后将片段添加到适配器,则尝试通知适配器。

It seems you have not added any fragment to your adapter yet. If you are adding the fragment to you adapter after assigning adapter to your viewpager, then try to notify your adapter.

更多推荐

本文发布于:2023-07-08 19:20:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1079983.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:指示器   传呼机

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!