亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有底點的Android ViewPager

帶有底點的Android ViewPager

慕田峪7331174 2019-11-21 15:14:10
我想在我的ViewPager中添加3個底點,如下所示。我使用FragmentActivity并支持庫ViewPager。
查看完整描述

3 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

viewPager.addOnPageChangeListener(new OnPageChangeListener() {

            @Override

            public void onPageSelected(int position) {


                switch (position) {

    case 0:

        img_page1.setImageResource(R.drawable.dot_selected);

        img_page2.setImageResource(R.drawable.dot);

        img_page3.setImageResource(R.drawable.dot);

        img_page4.setImageResource(R.drawable.dot);

        break;


    case 1:

        img_page1.setImageResource(R.drawable.dot);

        img_page2.setImageResource(R.drawable.dot_selected);

        img_page3.setImageResource(R.drawable.dot);

        img_page4.setImageResource(R.drawable.dot);

        break;


    case 2:

        img_page1.setImageResource(R.drawable.dot);

        img_page2.setImageResource(R.drawable.dot);

        img_page3.setImageResource(R.drawable.dot_selected);

        img_page4.setImageResource(R.drawable.dot);

        break;


    case 3:

        img_page1.setImageResource(R.drawable.dot);

        img_page2.setImageResource(R.drawable.dot);

        img_page3.setImageResource(R.drawable.dot);

        img_page4.setImageResource(R.drawable.dot_selected);

        break;


    default:

        break;

    }



            }


            @Override

            public void onPageScrolled(int arg0, float arg1, int arg2) {


            }


            @Override

            public void onPageScrollStateChanged(int arg0) {


            }

        });


查看完整回答
反對 回復 2019-11-21
?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

我的手工解決方案:


在布局中:


<LinearLayout

        android:orientation="horizontal"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/dots"

        />

并在活動中


private final static int NUM_PAGES = 5;

private ViewPager mViewPager;

private List<ImageView> dots;


@Override

protected void onCreate(Bundle savedInstanceState) {

    // ...

    addDots();

}


public void addDots() {

    dots = new ArrayList<>();

    LinearLayout dotsLayout = (LinearLayout)findViewById(R.id.dots);


    for(int i = 0; i < NUM_PAGES; i++) {

        ImageView dot = new ImageView(this);

        dot.setImageDrawable(getResources().getDrawable(R.drawable.pager_dot_not_selected));


        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(

                LinearLayout.LayoutParams.WRAP_CONTENT,

                LinearLayout.LayoutParams.WRAP_CONTENT

        );

        dotsLayout.addView(dot, params);


        dots.add(dot);

    }


    mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override

        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }


        @Override

        public void onPageSelected(int position) {

            selectDot(position);

        }


        @Override

        public void onPageScrollStateChanged(int state) {

        }

    });

}


public void selectDot(int idx) {

    Resources res = getResources();

    for(int i = 0; i < NUM_PAGES; i++) {

        int drawableId = (i==idx)?(R.drawable.pager_dot_selected):(R.drawable.pager_dot_not_selected);

        Drawable drawable = res.getDrawable(drawableId);

        dots.get(i).setImageDrawable(drawable);

    }

}


查看完整回答
反對 回復 2019-11-21
  • 3 回答
  • 0 關注
  • 470 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號