2016-02-28 64 views
0

我想用每個片段中的一些動畫來做SwipeViews。例如,我想改變按鈕的阿爾法從0到1在PagerAdapter的片段中使用動畫

我寫了動畫

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:shareInterpolator="false"> 
<alpha 
    android:duration="2000" 
    android:fromAlpha="0.0" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:toAlpha="1.0"/> 
</set> 

我必須跟fragmets這樣

public class FragmentOne extends Fragment { 
private Button bw; 
private Animation anim; 
private Context CON; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    CON=container.getContext(); 
    View vw = inflater.inflate(R.layout.fragemnt1,container,false); 
    bw=(Button)vw.findViewById(R.id.button); 
    anim= AnimationUtils.loadAnimation(CON,R.anim.animacia); 
    bw.startAnimation(anim); 
    return inflater.inflate(R.layout.fragemnt1,container,false); 
} 
} 

與佈局工作PagerAdapter

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#F20C36" > 


<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Button" 
    android:id="@+id/button" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="60dp" 
    android:visibility="invisible"/> 


</RelativeLayout> 

但這些動畫不起作用。什麼都沒發生。有人能幫助我嗎?

編輯:我PagerAdapter實施

public class PagerAdapter extends FragmentPagerAdapter { 

Context CON; 
public PagerAdapter(FragmentManager fm,Context con) { 
    super(fm); 
    CON=con; 
    // TODO Auto-generated constructor stub 
} 

@Override 
public Fragment getItem(int arg0) { 
    // TODO Auto-generated method stub 
    switch (arg0) { 
     case 0: 

      return new FragmentOne(); 
     case 1: 
      return new FragmentTwo(); 
     case 2: 
      return new FragmentThree(); 

     default: 
      break; 
    } 
    return null; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return 3; 
} 


} 

回答

0

你的按鈕是不可見的。你把可見性標籤設置爲可見嗎?

此片段可能會在片段顯示給用戶之前啓動onCreateView方法,因爲PagerAdapter可以隨時準備好顯示,具體取決於您的應用程序。所以,你可能需要一個setOnTabSelectedListener

如果您使用您的PagerAdapter的TabLayout,你可以做這樣的事情:

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 

    tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager) { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      super.onTabSelected(tab); 
      //start animation here 
     } 
    }); 
+0

喜歡的東西OnTabSelectedListener大概是,我一直在尋找。但是我該如何使用PagerAdapter來實現它? –

+0

這取決於你如何實現你的PagerAdapter,也許你可以分享更多的代碼,而不僅僅是片段。我編輯了一個如何完成TabLayout的示例的答案 – user5994441

+0

我添加了我的PagerAdapter的實現 –

相關問題