2016-05-14 76 views
0

我用頁面指示器刷卡ViewPager,但是當我運行我的應用程序時,我看到playbutton.xml和滑動視圖不起作用。
這裏是我的Java Activity(play_button.java):用指示器滑動查看尋呼機

public class play_button extends Activity implements 
ViewPager.OnPageChangeListener, View.OnClickListener{ 

protected View view; 
private ImageButton btnNext, btnFinish; 
private ViewPager intro_images; 
private LinearLayout pager_indicator; 
private int dotsCount; 
private ImageView[] dots; 
private ViewPagerAdapter mAdapter; 

private int[] mImageResources = { 
     R.mipmap.abc1, 
     R.mipmap.abc2, 
     R.mipmap.abc3, 
     R.mipmap.abc4, 
     R.mipmap.abc5 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    // To make activity full screen. 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 


    super.onCreate(savedInstanceState); 

    setReference(); 
    setContentView(R.layout.playbutton); 

    /* toolbar.setVisibility(View.GONE);*/ 

} 



public void setReference() { 

    view = LayoutInflater.from(this).inflate(R.layout.playbutton,null); 

    intro_images = (ViewPager) view.findViewById(R.id.pager_introduction); 
    btnNext = (ImageButton) view.findViewById(R.id.btn_next); 
    btnFinish = (ImageButton) view.findViewById(R.id.btn_finish); 

    pager_indicator = (LinearLayout) view.findViewById(R.id.viewPagerCountDots); 

    btnNext.setOnClickListener(this); 
    btnFinish.setOnClickListener(this); 

    mAdapter = new ViewPagerAdapter(play_button.this, mImageResources); 
    intro_images.setAdapter(mAdapter); 
    intro_images.setCurrentItem(0); 
    intro_images.addOnPageChangeListener(this); 
    setUiPageViewController(); 
} 

private void setUiPageViewController() { 

    dotsCount = mAdapter.getCount(); 
    dots = new ImageView[dotsCount]; 

    for (int i = 0; i < dotsCount; i++) { 
     dots[i] = new ImageView(this); 
     dots[i].setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.nonselecteditem_dot, null)); 

     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.WRAP_CONTENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT 
     ); 

     params.setMargins(4, 0, 4, 0); 

     pager_indicator.addView(dots[i], params); 
    } 

    dots[0].setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.selecteditem_dot, null)); 
} 


@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.btn_next: 
      intro_images.setCurrentItem((intro_images.getCurrentItem() < dotsCount) 
        ? intro_images.getCurrentItem() + 1 : 0); 
      break; 

     case R.id.btn_finish: 
      finish(); 
      break; 
    } 
} 

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

} 

@Override 
public void onPageSelected(int position) { 
    for (int i = 0; i < dotsCount; i++) { 
     dots[i].setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.nonselecteditem_dot, null)); 
    } 

    dots[position].setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.selecteditem_dot, null)); 

    if (position + 1 == dotsCount) { 
     btnNext.setVisibility(View.GONE); 
     btnFinish.setVisibility(View.VISIBLE); 
    } else { 
     btnNext.setVisibility(View.VISIBLE); 
     btnFinish.setVisibility(View.GONE); 
    } 
} 

@Override 
public void onPageScrollStateChanged(int state) { 

} 
} 

這裏是我的XML(playbutton.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:id="@+id/container" 
      android:fitsSystemWindows="true" 
      tools:context="com.androprogrammer.tutorials.samples.ViewPagerDemo"> 

<android.support.v4.view.ViewPager 
     android:id="@+id/pager_introduction" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     tools:listitem="@layout/pager_item" /> 

<RelativeLayout 
     android:id="@+id/viewPagerIndicator" 
     android:layout_width="match_parent" 
     android:layout_height="55dp" 

     android:layout_alignParentBottom="true" 
     android:layout_marginTop="5dp" 
     android:gravity="center"> 

    <LinearLayout 
      android:id="@+id/viewPagerCountDots" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_centerHorizontal="true" 
      android:gravity="center" 
      android:orientation="horizontal" /> 

    <ImageButton 
      android:id="@+id/btn_next" 
      android:layout_width="42dip" 
      android:layout_height="42dip" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="15dip" 
      android:background="@drawable/btn_round_semitransperant" 
      android:src="@mipmap/ic_navigation_arrow_forward" /> 

    <ImageButton 
      android:id="@+id/btn_finish" 
      android:layout_width="42dip" 
      android:layout_height="42dip" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="15dip" 
      android:background="@drawable/btn_round_semitransperant" 
      android:contentDescription="Let's start" 
      android:src="@mipmap/ic_navigation_check" 
      android:visibility="gone" /> 

</RelativeLayout> 

這裏是我的ViewPagerAdabter(ViewPagerAdapter.java) :

import android.content.Context; 
import android.support.v4.view.PagerAdapter; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 


public class ViewPagerAdapter extends PagerAdapter { 

private Context mContext; 
private int[] mResources; 

public ViewPagerAdapter(Context mContext, int[] mResources) { 
    this.mContext = mContext; 
    this.mResources = mResources; 
} 

@Override 
public int getCount() { 
    return mResources.length; 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view == ((LinearLayout) object); 
} 

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    View itemView = LayoutInflater.from(mContext).inflate(R.layout.pager_item, container, false); 

    ImageView imageView = (ImageView) itemView.findViewById(R.id.img_pager_item); 
    imageView.setImageResource(mResources[position]); 

    container.addView(itemView); 

    return itemView; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    container.removeView((LinearLayout) object); 
} 
} 

而這裏的pager_item.x毫升:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:fitsSystemWindows="true" 
android:layout_height="match_parent"> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:src="@mipmap/abc1" 
    android:id="@+id/img_pager_item" 
    android:scaleType="fitXY" 
    android:adjustViewBounds="true" 
    android:clickable="false"/> 

</LinearLayout> 

當我運行我的應用程序,然後單擊我的播放按鈕,而不是OD要去刷卡視圖頁面我看到playbutton.xml。

有誰知道問題在哪裏?

+0

這可能會幫助一些http://www.gadgetsaint.com/android/create-viewpager-tabs-android/#.WPuppVN97BI – ASP

回答

0

如果你想顯示點尋呼機指標,那麼我附上鍊接,通過它你可以很容易地實現點尋呼機指標。我個人推薦它。與這甚至可以用無限的尋呼指示工作

Follow this link

+0

太謝謝你了,但問題是,我什至不能查看我的SwipeView,我只看到XML,你知道問題出在哪裏? –

+0

嘗試運行此鏈接中提供的演示,並清除所有疑惑 –