左,右导航viewpager不工作 [英] left and right navigation to viewpager not working

查看:116
本文介绍了左,右导航viewpager不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是用我的应用程序查看传呼机,viewpager是工作完美,但我想添加viewpagerindicator,以下是我的片断code和用户界面设计的XML任何一个可以告诉我是什么问题?在此先感谢.. ...........

 公共类Test_Pager延伸活动{
私人字符串strtd;
的String [] imgStr;
ImageView的ImageView的;
ArrayList的<字符串> userImgArrayList;
的String [] myURLs;
/ *国家列表* /
JSONArray COUNTRY_LIST = NULL;
私人ServiceHandler SH;
私人字符串jsonStr;
私人的JSONObject jsonObj;
私人字符串user_img;
私人字符串user_pro;
私有静态字符串PROFILE_VIEW_URL =;
私有静态最后弦乐USER_IMG =product_images;
@覆盖
保护无效的onCreate(包savedInstanceState){

    super.onCreate(savedInstanceState);
    的setContentView(R.layout.test_pagerss);
    userImgArrayList = getIntent()getStringArrayListExtra(user_images);
    ViewPager viewPager =(ViewPager)findViewById(R.id.view_pager);
       ImageAdapter适配器=新ImageAdapter(本);
       viewPager.setAdapter(适配器);
      // TitlePageIndicator titleIndicator =(TitlePageIndicator)findViewById(R.id.titles);
      // titleIndicator.setViewPager(viewPager);
       leftss =(ImageView的)findViewById(R.id.lefticonsss);
       rightss =(ImageView的)findViewById(R.id.righticonsss);

     ImageView的=(ImageView的)findViewById(R.id.full_image_view);
     PROFILE_VIEW_URL =;
    。StrictMode.ThreadPolicy政策=新StrictMode.ThreadPolicy.Builder()permitAll()建();
    StrictMode.setThreadPolicy(政策);
    SH =新ServiceHandler();

        //制作一个请求URL并得到响应
        jsonStr = sh.makeServiceCall(PROFILE_VIEW_URL,ServiceHandler.GET);

        Log.d(回应:,>中+ jsonStr);

     尝试 {
         jsonObj =新的JSONObject(jsonStr);


             / * proview_business = jsonObj.getString(PROFILE_VIEW_BUSINESS);
             proview_subcat = jsonObj.getString(PROFILE_VIEW_SUB_CATAGORY);
             proview_mainpro = jsonObj.getString(PROFILE_VIEW_MAINPRODUCTS);
             proview_expr = jsonObj.getString(PROFILE_VIEW_EXPERIENCE);
             proview_cmpname = jsonObj.getString(PROFILE_VIEW_COMPANYNAME);
             proview_website = jsonObj.getString(PROFILE_VIEW_WEBSITE); * /

            // user_img = jsonObj.getString(USER_IMG);



            user_img = jsonObj.getString(USER_IMG);
            user_img =;
            userImgArrayList =新的ArrayList<字符串>(); //声明userImgArrayList全球如ArrayList<字符串> userImgArrayList;
            JSONArray picarray = jsonObj.getJSONArray(USER_IMG);
            的for(int i = 0; I< picarray.length();我++)
            {
                user_img = picarray.getString(ⅰ);
                userImgArrayList.add(user_img);
                Log.d(mylog,个当前PRO PIC =+ user_img);
            }


     }赶上(JSONException E){
         e.printStackTrace();
     }
leftss.setOnClickListener(新OnClickListener(){

            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                viewPager.setCurrentItem(+ 1,真正的);
            }
        });
}
公共类ImageAdapter扩展PagerAdapter {
     上下文语境;
      ImageAdapter(上下文的背景下)
     {
     this.context =背景;
     }
      @覆盖
      公众诠释getCount将(){
      返回USER_IMG.length();
      }

      @覆盖
        公共无效destroyItem(View容器,INT位置,Object对象){
             ((ViewPager)容器).removeView((查看)对象);
        }
     @覆盖
     公共布尔isViewFromObject(查看视图,Object对象){
     返回查看==((ImageView的)对象);
     }

     @覆盖
        公共对象instantiateItem(ViewGroup中的容器,INT位置){
            ImageView的ImageView的=新ImageView的(上下文);
            INT填充= context.getResources()。getDimensionPixelSize(
                    R.dimen.activity_horizo​​ntal_margin);
            imageView.setPadding(填充,填充,填充,填充);
            //imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            //Picasso.with(context).load(userImgArrayList.get(position)).into(imageView);
            Picasso.with(上下文).load(userImgArrayList.get(位置))调整(200,200)。走进(ImageView的)。

            / *的for(int i = 0; I< myURLs.length;我++)
            {

                尝试 {
                    URL =新的URL(myURLs [I]);
                }赶上(MalformedURLException异常E){
                    // TODO自动生成的catch块
                    e.printStackTrace();
                }

                尝试 {
                    BMP = BitmapFactory.de codeStream(url.openConnection()的getInputStream());
                }赶上(IOException异常E){
                    // TODO自动生成的catch块
                    e.printStackTrace();
                }
                 imageView.setImageBitmap(BMP);
            }
            * /
            // imageView.setImageURI(Uri.parse(imgStr [位置]));
            ((ViewPager)容器).addView(ImageView的,0);
            返回ImageView的;
        }
     }

  }
 

与myXML

 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=横向
机器人:背景=@机器人:彩色/黑白
机器人:重力=center_horizo​​ntal
>



     < ImageView的
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_width =WRAP_CONTENT

   机器人:SRC =@可绘制/箭头
   机器人:旋转=180
    机器人:ID =@ + ID / lefticonsss
    />


  < android.support.v4.view.ViewPager
  机器人:ID =@ + ID / view_pager
  机器人:layout_width =150dp
  机器人:layout_height =150dp

   />

    < ImageView的机器人:ID =@ + ID / full_image_view
    机器人:layout_width =WRAP_CONTENT

    机器人:layout_height =WRAP_CONTENT/>


    < ImageView的
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_width =WRAP_CONTENT
    机器人:SRC =@可绘制/箭头

    机器人:ID =@ + ID / righticonsss
    />



    < / LinearLayout中>
 

解决方案

我使用这个库的https:// github上。 COM / astuetz / PagerSlidingTabStrip

摘要:

1.do这在的onCreate

  //初始化ViewPager并设置一个适配器
ViewPager寻呼机=(ViewPager)findViewById(R.id.pager);
pager.setAdapter(新TestAdapter(getSupportFragmentManager()));

//绑定的选项卡的ViewPager
PagerSlidingTabStrip标签=(PagerSlidingTabStrip)findViewById(R.id.tabs);
tabs.setViewPager(寻呼机);
 

<醇开始=2>

  • (可选)如果您使用 OnPageChangeListener ViewPager 你应该设置在控件,而不是在 ViewPager 直接

    tabs.setOnPageChangeListener(mPageChangeListener);

  • I am using view pager in my app,viewpager is working perfect but i want to add viewpagerindicator,following is my snippet code and xml of ui design can any one tell me what is issue?thanks in advance.............

     public class Test_Pager extends Activity{
    private String strtd;
    String[] imgStr;
    ImageView imageView;
    ArrayList<String> userImgArrayList;
    String[] myURLs;
    /*country list*/
    JSONArray country_list=null;
    private ServiceHandler sh;
    private String jsonStr;
    private JSONObject jsonObj;
    private String user_img;
    private String user_pro;
    private static String PROFILE_VIEW_URL = "";
    private static final String USER_IMG="product_images";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test_pagerss);
        userImgArrayList = getIntent().getStringArrayListExtra("user_images");
        ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
           ImageAdapter adapter = new ImageAdapter(this);
           viewPager.setAdapter(adapter);
          // TitlePageIndicator titleIndicator = (TitlePageIndicator) findViewById(R.id.titles);
          // titleIndicator.setViewPager(viewPager);
           leftss=(ImageView)findViewById(R.id.lefticonsss);
           rightss=(ImageView)findViewById(R.id.righticonsss); 
    
         imageView = (ImageView) findViewById(R.id.full_image_view);
         PROFILE_VIEW_URL="";
        StrictMode.ThreadPolicy policy = new   StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        sh = new ServiceHandler();
    
            // Making a request to url and getting response
            jsonStr = sh.makeServiceCall(PROFILE_VIEW_URL, ServiceHandler.GET);
    
            Log.d("Response: ", "> " + jsonStr);
    
         try {
             jsonObj = new JSONObject(jsonStr);
    
    
                 /*proview_business = jsonObj.getString(PROFILE_VIEW_BUSINESS);
                 proview_subcat = jsonObj.getString(PROFILE_VIEW_SUB_CATAGORY);
                 proview_mainpro = jsonObj.getString(PROFILE_VIEW_MAINPRODUCTS);
                 proview_expr = jsonObj.getString(PROFILE_VIEW_EXPERIENCE);
                 proview_cmpname = jsonObj.getString(PROFILE_VIEW_COMPANYNAME);
                 proview_website = jsonObj.getString(PROFILE_VIEW_WEBSITE);*/
    
                // user_img=jsonObj.getString(USER_IMG);
    
    
    
                user_img=jsonObj.getString(USER_IMG);
                user_img = "";
                userImgArrayList = new ArrayList<String>();//declare userImgArrayList globally like ArrayList<String> userImgArrayList;
                JSONArray picarray = jsonObj.getJSONArray(USER_IMG);
                for(int i=0;i< picarray.length();i++)
                {
                    user_img = picarray.getString(i);
                    userImgArrayList.add(user_img);
                    Log.d("mylog", "curent  pro pic  = " + user_img);
                }
    
    
         } catch (JSONException e) {
             e.printStackTrace();
         }
    leftss.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    viewPager.setCurrentItem(+1,true);
                }
            });
    }
    public class ImageAdapter extends PagerAdapter {
         Context context;
          ImageAdapter(Context context)
         {
         this.context=context;
         }
          @Override
          public int getCount() {
          return USER_IMG.length();
          }
    
          @Override
            public void destroyItem(View container, int position, Object object) {
                 ((ViewPager) container).removeView((View) object);
            }
         @Override
         public boolean isViewFromObject(View view, Object object) {
         return view == ((ImageView) object);
         }
    
         @Override
            public Object instantiateItem(ViewGroup container, int position) {
                ImageView imageView = new ImageView(context);
                int padding = context.getResources().getDimensionPixelSize(
                        R.dimen.activity_horizontal_margin);
                imageView.setPadding(padding, padding, padding, padding);
                //imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                //Picasso.with(context).load(userImgArrayList.get(position)).into(imageView);
                Picasso.with(context).load(userImgArrayList.get(position)).resize(200, 200) .into(imageView);
    
                /*for(int i=0; i<myURLs.length;i++)
                { 
    
                    try {
                        url = new URL(myURLs[i]);
                    } catch (MalformedURLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
    
                    try {
                        bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                     imageView.setImageBitmap(bmp);
                }
                */
                // imageView.setImageURI(Uri.parse(imgStr[position]));
                ((ViewPager) container).addView(imageView, 0);
                return imageView;
            }
         }
    
      }
    

    Myxml

       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:background="@android:color/black"
    android:gravity="center_horizontal"
    >
    
    
    
         <ImageView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
    
       android:src="@drawable/arrow"
       android:rotation="180"
        android:id="@+id/lefticonsss"
        />
    
    
      <android.support.v4.view.ViewPager
      android:id="@+id/view_pager"
      android:layout_width="150dp"
      android:layout_height="150dp"
    
       />
    
        <ImageView android:id="@+id/full_image_view"
        android:layout_width="wrap_content"
    
        android:layout_height="wrap_content"/>
    
    
        <ImageView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/arrow"
    
        android:id="@+id/righticonsss"
        />
    
    
    
        </LinearLayout>
    

    解决方案

    I use this library https://github.com/astuetz/PagerSlidingTabStrip

    Summary :

    1.do this in your onCreate

    // Initialize the ViewPager and set an adapter
    ViewPager pager = (ViewPager) findViewById(R.id.pager);
    pager.setAdapter(new TestAdapter(getSupportFragmentManager()));
    
    // Bind the tabs to the ViewPager
    PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
    tabs.setViewPager(pager);
    

    1. (Optional) If you use an OnPageChangeListener with your ViewPager you should set it in the Widget rather than on the ViewPager directly.

      tabs.setOnPageChangeListener(mPageChangeListener);

    这篇关于左,右导航viewpager不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆