动态添加片段

时间:2015-10-02 08:56:22

标签: android android-fragments android-viewpager

我需要在图片下方显示文字,但需要使用水平滑动功能。这是每次人们水平滑动图像和文本更新。但问题是,当服务器返回时,我不知道带有文本的图像数量。我该如何处理?

3 个答案:

答案 0 :(得分:1)

使用ViewPageAdapter来实现此功能。第一步是从服务器获取图像和相应的文本。我宁愿自定义服务器以返回它的json数组。

使用从服务器获取的值,编写类似于下面的适配器。这里myValues将是存储服务器中所有值的数组。

使用静态方法创建FragmentMyFragment下方),该方法将返回设置了所需值的片段的新实例。

现在,当您滑动时,将调用方法getItem(pos),并向用户显示片段的新实例。

 private class MyPagerAdapter extends FragmentPagerAdapter {
    ArrayList<Values> myValues = new ArrayList<Values>();

    public MyPagerAdapter(FragmentManager fm,ArrayList<Values> val) {
        super(fm);
        this.myValues = val;
    }

    @Override
    public Fragment getItem(int pos) {
        return MyFragment.newInstance("text","image");
    }

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

希望这会有所帮助。 :)

答案 1 :(得分:1)

使用带水平滚动的RecyclerView。

<taxonomy>
  <record code="B">
    <name>Basic Needs</name>    
    <facet>Service</facet>
    <record code="BD">
      <name>Food</name>
      <facet>Service</facet>
      <record code="BD-1800">
        <name>Emergency Food</name>
        <facet>Service</facet>
        <record code="BD-1800.1000">
          <name>Brown Bag Food Programs</name>
          <facet>Service</facet>
        </record>
        <record code="BD-1800.1500">
          <name>Commodity Supplemental Food Program</name>
          <facet>Named Programs</facet>
        </record>
        <record code="BD-1800.1900">
          <name>Food Lines</name>
          <facet>Service</facet>
        </record>
        ...
      </record>
      ... 
    </record>
    ...
  </record>
  <record code="D">
    <name>Consumer Services</name>    
    <facet>Service</facet>
    ...
  </record>
  ...
</taxonomy>

答案 2 :(得分:0)

您需要在onSwipeLeft或onSwipeRight内更新textView(在单独的片段中或在同一个活动中)。

要进行这些回调,您需要创建扩展TouchListener的自定义侦听器。

这样做的好例子是here