有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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>

我遵循以下指南:https://www.youtube.com/watch?v=VQwZQz9qsDA


共 (0) 个答案