我很难搞清楚下一件事.
我拥有:我有一个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
我有一个简单的消息应用程序模块.其中,有两个可切换的标签.收到并发送.让我们说我有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
我必须在标题页标题中显示带有相应图标的标题.喜欢这个图像.但只能显示标题而不是图标.
这是我所做的代码.
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) 由于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)
但FragmentPagerAdapter在class 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
我在实现基于多个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
我正在尝试使用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
我用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是网格片段并显示网格.Fragment2并Fragment3有自己的内容来展示.当使用在屏幕上滑动时,ViewPager将显示下一个片段 - Fragment2.等等.
我想要的是,当Fragment1点击网格中的一个项目(由...显示)时,Fragment1应该完全替换为其他一些片段,比如说Fragment4(这是不同的片段,连接的适配器不会返回).用户将Fragment4在ButtonBack点击之后(仅按钮旁边Fragment4)工作,Fragment1并且应该再次显示网格.同时ViewPager应该表现相同,即在滑动时,Fragment2将显示下一个片段(在我们的例子中).
所以我只想获得与示例相同的行为:http: //developer.android.com/training/basics/fragments/fragment-ui.html#Replace
那么,这有可能实现吗?如果是,那该怎么办?我非常感谢你的帮助.亚历克斯.PS抱歉我的英文:)
android replace android-fragments android-viewpager fragmentpageradapter
我可以将谷歌地图加载到活动中的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) 我目前在ViewPager中水平排列视图,并可以使用PagerAdapter循环浏览它们.目前,要执行我想要在滑动上执行的操作,我必须在View的页面上双击.我可以发布代码,但提取必要的部分有点困难......
我想要的是能够在这些视图上垂直滑动,让它们通过滑动和淡出垂直平移,然后当它们距离设备边缘一定距离时执行动作.
为了了解我的想法,在Gallery应用程序中,您可以捏开已打开的照片以缩小并打开水平幻灯片视图.在那里,您可以向上(或向下)扫描照片/视频以删除它.对于那些没有相同Gallery应用程序的人来说,这就像在iOS上关闭应用程序一样.
我已经尝试扫描Gallery应用程序的源代码,但没有运气找到正确的Activity.
android android-fragments swipe-gesture android-viewpager fragmentpageradapter
嘿家伙我有一个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