标签: fragmentpageradapter

无法刷新/更新ViewPager中另一个片段的片段中的listview

我很难搞清楚下一件事.

我拥有:我有一个viewpager和几页.在这个问题中,只有两个是重要的,我们称之为Fragment1和Fragment2,它们彼此相邻.Fragment1包含一个列表视图,其中填充了来自Internet(外部数据库)的数据.Fragment2包含一个简单的按钮.

我的目标:如果我点击Fragment2中的按钮,我会向外部数据库添加一个新项目.我想用这个新项更新/刷新Fragment1中的列表视图.

notifyDataChanged()在我的情况不工作,但到目前为止,我确信它重新实例每一个页面..我要介绍我的问题,我可以最清楚的方式,所以让我们看看我的代码,这是我的ViewPager适配器:

class MyPagerAdapter extends FragmentStatePagerAdapter {
        public List<String> fragmentsA; 

        public MyPagerAdapter(FragmentManager fm) {
            super(fm);
            fragmentsA = fragments;
        }

        @Override
        public Fragment getItem(int position) {
           return Fragment.instantiate(context, fragmentsA.get(position));

        }

        @Override
        public CharSequence getPageTitle(int position) {
           return mEntries.get(position % CONTENT.length).toUpperCase();
        }

        @Override
        public int getCount() {
          return mEntries.size();
        }

        @Override
        public int getItemPosition(Object object) {
            return POSITION_NONE;
        }
    }
Run Code Online (Sandbox Code Playgroud)

Fragment1 onCreateView()(简称):

public View onCreateView(LayoutInflater inflater, final ViewGroup container,
            Bundle savedInstanceState) {

    getData();
    View …
Run Code Online (Sandbox Code Playgroud)

android fragment android-listview android-viewpager fragmentpageradapter

10
推荐指数
1
解决办法
9789
查看次数

如何动态更新视图寻呼机项目TITLE

我有一个简单的消息应用程序模块.其中,有两个可切换的标签.收到并发送.让我们说我有20条消息,其中10条未读.所以我正在做的是将标签显示为已接收 - (10).现在,当我阅读消息时,它将消息标记为已读.所以我想将标题从Received - (10)更改为Received - (9).

请让我知道我该怎么办?

这是我正在使用的代码.

@Override
public int getCount() {
    return 2;
}

@Override
public CharSequence getPageTitle(int position) {

    if (position == 0) {
        // if position is zero, set the title to RECEIVED.
        return "Received" + " (" + String.valueOf(intUnreadReceivedMessagesCount) + ")";
    } else {
        // if position is 1, set the title to SENT.
        return "Sent";
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用Pager Sliding Tab Strip作为寻呼机标签库.https://github.com/astuetz/PagerSlidingTabStrip

我尝试过使用notifyDataSetChanged(),但由于显而易见的原因,它没有调用它.任何解决问题的方法.任何更好的替代方案,以显示和更新计数也是受欢迎的.

谢谢.

android android-viewpager fragmentpageradapter pagerslidingtabstrip

10
推荐指数
2
解决办法
1万
查看次数

如何在android FragmentPagerAdapter中添加页面标题和图标

我必须在标题页标题中显示带有相应图标的标题.喜欢这个图像.但只能显示标题而不是图标.

这是我所做的代码.

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        // getItem is called to instantiate the fragment for the given page.
        // Return a DummySectionFragment (defined as a static inner class
        // below) with the page number as its lone argument.

        Log.e("POSITION", "position=" + position);
        Fragment fragment;
        switch (position) {
        case 0:
         //Fragment1
        case 1:
         //Fragment2
        case 2:
         //Fragment3
        case 3:
         //Fragment4
        case 4:
         //Fragment5

        }
        return null;

    } …
Run Code Online (Sandbox Code Playgroud)

android fragmentpageradapter

10
推荐指数
2
解决办法
2万
查看次数

FragmentPagerAdapter已弃用

由于API 27 FragmentPagerAdapter已弃用。最好的替代方法是什么?

就我而言,我知道super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)需要使用类似的东西,但是我不知道代码需要放在哪里。

我在课堂上得到了这些进口:

import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
Run Code Online (Sandbox Code Playgroud)

FragmentPagerAdapterclass MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager){被划掉。

class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager){
        private val fragmentList : MutableList<androidx.fragment.app.Fragment> = ArrayList()
        private val titleList : MutableList<String> = ArrayList()

        override fun getItem(position: Int): androidx.fragment.app.Fragment {
            return fragmentList[position]
        }

        override fun getCount(): Int {
            return fragmentList.size
        }

        fun addFragment(fragment: androidx.fragment.app.Fragment, title: String){
            fragmentList.add(fragment)
            titleList.add(title)
        }

        override fun getPageTitle(position: Int): CharSequence? {
            return titleList[position]
        }
    }
Run Code Online (Sandbox Code Playgroud)

android android-viewpager kotlin fragmentpageradapter fragmentmanager

10
推荐指数
4
解决办法
4338
查看次数

Fragment中的FragmentPagerAdapter

我在实现基于多个ViewPagers的设计时遇到了一些麻烦.

在高级别,我有一个FragmentActivity只有一个FrameLayout作为它的内容.我想要显示3个不同的碎片.全部3个全屏,一次只使用1个.

片段1是一个带有一些TextView和ImageViews的基本片段.片段2有一个ViewPager和一个FragmentPagerAdapter,可以为它提供几个简单的片段.片段3有一个ViewPager和一个FragmentPagerAdapter,可以为它提供几个简单的片段(与片段2不同)

在我的FragmentActivity onCreate()中,我获得了FragmentManager并开始一个事务,用一个新的Fragment 2实例替换我的FrameLayout中的任何东西.

在这一点上,一切都按预期工作.Fragment 2中的我的ViewPager工作得很好.

现在我有一个菜单选项,用我的FrameLayout中的Fragment 2替换Fragment 3的新实例.这也可以正常工作.

当我尝试使用另一个替换事务将Fragment 2放回FrameLayout时出现问题.我看到我的PagerIndicater位于顶部,但我的页面是空白的.

我试过创建一个我的Fragment 2的新实例并调用一个替换事务.当我调用replace并在替换之前添加findFragmentByTag检查而不是创建新实例时,我也尝试在我的Fragments上设置标记.在第二次更换后,两者都给了我相同的空白页结果.

供参考我的第一个设计只是一个带有ViewPager和ViewIndicater的FragmentActivity.我上面的描述中只有Fragment 2和Fragment 3以及在它们之间切换的菜单选项.要切换我有2个不同的FragmentPagerAdapters定义,只需调用ViewPager.setAdapter来设置选定的FragmentPagerAdapter.这是完美的,但现在我需要一个新的顶级片段,根本不使用ViewPager.这就是我决定将ViewPagers移到他们自己的片段中的原因.我的想法是,我只是将我的片段交换到FrameLayout.

我现在没有我的代码在我面前所以我不能发布任何代码,但我明天会在我的问题中添加一些代码来帮助提供答案.

android android-fragments android-viewpager fragmentpageradapter android-nested-fragment

9
推荐指数
2
解决办法
6863
查看次数

FragmentPagerAdapter的问题

我正在尝试使用viewpager和片段制作幻灯片,这样我就可以为每个片段加载不同的布局,并为每个页面提供不同的功能.

我按照教程来完成这个.

我在悬停时遇到的错误public Fragment getItem(int arg0):返回类型与之不兼容FragmentPagerAdapter.getItem(int)

和错误#2:构造函数FragmentPagerAdapter(FragmentManager)未定义 - >在悬停时获取此构造函数super(fm);

package com.example.spui;

import android.os.Bundle;
import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class MyFragmentPagerAdapter extends FragmentPagerAdapter{

    final int PAGE_COUNT = 5;

    /** Constructor of the class */
    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    /** This method will be invoked when a page is requested to create */
    @Override
    public Fragment getItem(int arg0) {

        MyFragment myFragment = new MyFragment();
        Bundle data = new Bundle();
        data.putInt("current_page", …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentpageradapter android-pageradapter

9
推荐指数
1
解决办法
1万
查看次数

如何使用PagerAdapter替换ViewPager中的Fragment?

我的问题

我用a ViewPager来显示一个片段FragmentActivity.ViewPager从附件中获取片段FragmentPagerAdapter.

mViewPager = (ViewPager) findViewById(R.id.view_pager);       
mAdapter = new HomePagerAdapter(getSupportFragmentManager());    
mViewPager.setAdapter(mAdapter);
Run Code Online (Sandbox Code Playgroud)

假设ViewPager有3个片段来显示:Fragment1,Fragment2,Fragment3.Fragment1是网格片段并显示网格.Fragment2Fragment3有自己的内容来展示.当使用在屏幕上滑动时,ViewPager将显示下一个片段 - Fragment2.等等.

我想要的是?

我想要的是,当Fragment1点击网格中的一个项目(由...显示)时,Fragment1应该完全替换为其他一些片段,比如说Fragment4(这是不同的片段,连接的适配器不会返回).用户将Fragment4ButtonBack点击之后(仅按钮旁边Fragment4)工作,Fragment1并且应该再次显示网格.同时ViewPager应该表现相同,即在滑动时,Fragment2将显示下一个片段(在我们的例子中).

所以我只想获得与示例相同的行为:http: //developer.android.com/training/basics/fragments/fragment-ui.html#Replace

我的问题

那么,这有可能实现吗?如果是,那该怎么办?我非常感谢你的帮助.亚历克斯.PS抱歉我的英文:)

android replace android-fragments android-viewpager fragmentpageradapter

9
推荐指数
2
解决办法
9170
查看次数

正在加载由ViewPager管理的Android Google Map片段

我可以将谷歌地图加载到活动中的Android片段中.这一直很好.

但现在我想使用ViewPager在视图(类android.support.v4.app.Fragment)之间导航.似乎不可能将a加载com.google.android.gms.maps.MapFragment到这样的片段中.

例如,在:

SoleMap.java

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.LatLng;

public class SoleMap extends Fragment implements OnMapReadyCallback {

    MapFragment gMapFragment;
    GoogleMap gMap = null;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.sole_map, container, false);

        gMapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.soleViewMap);
        gMapFragment.getMapAsync(this);

        return view;
    }

    @Override
    public void onMapReady(GoogleMap map) {
        gMap = map;
        gMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
        gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new
                LatLng(49.39,-124.83), 20));
    } …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-fragments fragmentpageradapter

9
推荐指数
2
解决办法
1万
查看次数

使用ViewPager实现iOS应用程序关闭垂直Swipe-to-Dismiss等功能

我目前在ViewPager中水平排列视图,并可以使用PagerAdapter循环浏览它们.目前,要执行我想要在滑动上执行的操作,我必须在View的页面上双击.我可以发布代码,但提取必要的部分有点困难......

我想要的是能够在这些视图上垂直滑动,让它们通过滑动和淡出垂直平移,然后当它们距离设备边缘一定距离时执行动作.

为了了解我的想法,在Gallery应用程序中,您可以捏开已打开的照片以缩小并打开水平幻灯片视图.在那里,您可以向上(或向下)扫描照片/视频以删除它.对于那些没有相同Gallery应用程序的人来说,这就像在iOS上关闭应用程序一样.

我已经尝试扫描Gallery应用程序的源代码,但没有运气找到正确的Activity.

android android-fragments swipe-gesture android-viewpager fragmentpageradapter

9
推荐指数
1
解决办法
2453
查看次数

禁用在fragmentPagerAdapter中滑动? - android

嘿家伙我有一个fragmentPagerAdapter,里面有3个片段.如何禁用3个片段之间的滑动,以便用户只使用tabview在片段之间进行?

干杯!

private class ViewPagerAdapter extends FragmentPagerAdapter
{
    ArrayList<Fragment> fragments = new ArrayList<>();
    ArrayList<String> tabTitles = new ArrayList<>();

    public ViewPagerAdapter(android.support.v4.app.FragmentManager fragmentManager)
    {
        super(fragmentManager);
    }
    @Override
    public Fragment getItem(int position)
    {
        return fragments.get(position);
    }
    @Override
    public int getCount()
    {
        return fragments.size();
    }
    @Override
    public CharSequence getPageTitle(int position)
    {
        return tabTitles.get(position);
    }
    public void addFragments(Fragment fragment, String titles)
    {
        this.fragments.add(fragment);
        this.tabTitles.add(titles);
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments fragmentpageradapter android-pageradapter

8
推荐指数
2
解决办法
7711
查看次数