java在VerticalViewPage(Android)的每个页面中动态插入JSON数据
我想在垂直滚动视图的每个页面中插入一些文本(我从JSON url获取)。 目前,这款应用可以使用三个“静态”页面,但我想要“无限”和动态页面。 我是初学者。。。所以如果有人能帮我写代码或者给我更好的解决方案。。。 这是我的工作:
主要活动。xml:
<安卓x.constraintlayout.widget.ConstraintLayout
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
tools:context=".MainActivity">
<com.example.test.VerticalViewPager
安卓:id="@+id/pager"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
/>
</安卓x.constraintlayout.widget.ConstraintLayout>
主要活动。爪哇:
public class MainActivity extends AppCompatActivity {
private VerticalViewPager viewPager;
private PagerAdapter pagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<Fragment> list = new ArrayList<>();
list.add(new PageFragment1());
list.add(new PageFragment2());
list.add(new PageFragment3());
viewPager =findViewById(R.id.pager);
pagerAdapter = new VPagerAdapter(getSupportFragmentManager(),list);
viewPager.setAdapter(pagerAdapter);
}
}
vPager适配器。爪哇:
public class VPagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragmentList;
public VPagerAdapter(FragmentManager fm, List<Fragment> fragmentList){
super(fm);
this.fragmentList = fragmentList;
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
VerticalviewPage。爪哇:
public class VerticalViewPager extends ViewPager {
public VerticalViewPager (@NonNull Context context){
super(context);
init();
}
public VerticalViewPager(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
private void init(){
setPageTransformer(true, new VerticalPage());
setOverScrollMode(OVER_SCROLL_NEVER);
}
private MotionEvent getInterambioXY(MotionEvent ev){
float width = getWidth();
float height = getHeight();
float newX = (ev.getY() / height) * width;
float newY = (ev.getX() / width) * height;
ev.setLocation(newX,newY);
return ev;
}
@Override
public boolean onInterceptHoverEvent(MotionEvent ev) {
boolean intercepted = super.onInterceptTouchEvent(getInterambioXY(ev));
getInterambioXY(ev);
return intercepted;
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
return super.onTouchEvent(getInterambioXY(ev));
}
private class VerticalPage implements ViewPager.PageTransformer{
@Override
public void transformPage(@NonNull View view, float position) {
if(position < -1){
view.setAlpha(0);
}else if(position<=1){
view.setAlpha(1);
view.setTranslationX(view.getWidth() * -position);
float yPosition = position * view.getHeight();
view.setTranslationY(yPosition);
}else{
view.setAlpha(0);
}
}
}
}
PageFrament1,2,3,4。。。。爪哇:
public class PageFragment1 extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.page_1, container, false);
return rootView;
}
}
第1、2、3、4页。。。。xml:
<RelativeLayout
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓" 安卓:layout_width="match_parent"
安卓:background="@安卓:color/darker_gray"
安卓:layout_height="match_parent">
<TextView
安卓:id="@+id/textView"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:layout_centerInParent="true"
安卓:textSize="35sp"
安卓:text="PAGE1" />
</RelativeLayout>
共 (0) 个答案