Articles of android fragments

如何使用TabLayout在Fragment中使用CardView行实现RecyclerView

我想在使用TabLayout的Activity中实现ListFragment,以便我可以在不同的列表之间滑动。 最后它应该成为一个预订应用程序,以便您可以选择不同的学科,并预订一个特定的时间段。 但到目前为止,我只能实现ListActivity或标签活动(android studio中的标准活动),但不能同时实现两者。 如果有人可以提供帮助,我会很高兴的。 标签式活动: public class Diciplines extends AppCompatActivity { /** * The {@link android.support.v4.view.PagerAdapter} that will provide * fragments for each of the sections. We use a * {@link FragmentPagerAdapter} derivative, which will keep every * loaded fragment in memory. If this becomes too memory intensive, it * may be best to […]

使用带有片段的工具栏

我正在尝试创建一个viewpager,它使用不同的工具栏刷过3个不同的片段。 我之前在一个活动中实现了新的工具栏,并让它工作,但我试图让它与片段一起工作 这是片段代码 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout resource that’ll be returned View rootView = inflater.inflate(R.layout.fragment_home, container, false); mToolbar = (Toolbar) rootView.findViewById(R.id.toolbar_home); if (mToolbar != null) { setSupportActionBar(mToolbar); } mToolbar.setTitle(null); return rootView; } 我正在使用Fragment扩展我的片段,但是我得到了错误 Cannot resolve method setSupportActionBar 我不知道如何解决这个问题,如果我删除setSupportActionBar代码,它会停止使用某些设备吗? 谢谢

Android:如何在Fragments视图准备好时通知Activity?

我正在使用Google Maps API V2进行活动,其中下拉导航地图位于第二个位置。 我正在实际添加地图,如: mMapFragment = supportMapFragment.newInstance(); getSupportFragmentManager() .beginTransaction() .replace(R.id.placeHolder, mMapFragment, TAG_MAP) .commit(); 我想获得GoogleMap,因为文档https://developers.google.com/maps/documentation/android/map说它应该使用mMapFragment.getMap() ,但它返回null。 根据http://developer.android.com/reference/com/google/android/gms/maps/SupportMapFragment.html ,如果Fragment尚未通过onCreateView生命周期事件,则返回null。 片段何时准备好怎么知道? 编辑:我发现这个如何知道在使用SupportMapFragment时地图已经准备就绪? 覆盖onActivityCreated似乎是一个解决方案,但是我必须通过构造函数而不是newInstance()来实例化片段,它有什么区别吗?

如何在Recycler.Adapter上调用getFragmentManager?

我正在将我的应用程序的ListView转换为RecyclerView。 在ListView上,实现OnClickListener非常容易,但在RecyclerView中,我们必须在适配器中执行它。 我想在用户点击某个项目时打开一个新的片段。 要做到这一点,我必须在适配器中调用FragmentManager,我无法做到。 这是我的RecyclerAdapter代码: public ListItemViewHolder(View itemView) { super(itemView); title = (TextView) itemView.findViewById(R.id.title); description = (TextView) itemView.findViewById(R.id.description); itemView.setOnClickListener(this); } @Override public void onClick(View v) { //Call FragmentManager and add Fragment to it. } } 那么,如何调用FragmentManager并在其中添加Fragments。 有没有比sendBroadcast或任何其他方法更好的方法。

以编程方式在ViewPager.OnPageChangeListener onPageSelected()中隐藏软键盘?

我有一个带标签的ViewPager + ActionBar。 当我“滑动”到另一个标签时我想隐藏软键盘,但我无法弄清楚如何。 我已经将我的Activity传递给了FragmentPageAdapter的构造函数,所以我可以调用它 activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 但它没有做任何事情(并且它位于代码的可到达区域)…帮助?

试图将片段添加到我的片段容器FrameLayout

我创建了一个名为editor.xml的xml文件,其中包含一个FrameLayout。 在我的主要活动中,我正在尝试将自定义片段添加到FrameLayout中。 我在尝试添加片段时收到的错误是: FragmentTransactiontypes中的方法add(int,Fragment)不适用于参数(int,editorFrag) 然而,我的editorFrag扩展了Fragment,所以我很困惑为什么会发生这种情况。 下面是我提到的文件的代码。 任何帮助表示赞赏。 Editor.xml editorFrag.java public class editorFrag extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.newlevel, container, false); } } MainActivity.java public class editorActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.editor); // Check […]

递归进入executePendingTransactions

我有一个MainDrawer to Fragment活动,它有一个导航抽屉的布局我和我的主要内容,我可以在其中加载新的碎片。 我加载的一个片段是calle StatisticsTab Fragment。 这个Fragment包含一个tabhost,每个tab都是它自己的listview项的片段。 一旦我点击ListView项目,它加载另一个新的片段,我不再在tabHost中,我尝试使用导航器返回到我的StatisticsTab片段,我收到此错误: 03-03 10:32:06.884 24185-24185/com.beerportfolio.beerportfoliopro E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.IllegalStateException: Recursive entry to executePendingTransactions at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1439) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472) at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:283) at android.view.View.dispatchAttachedToWindow(View.java:12307) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2457) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2464) at android.view.ViewGroup.addViewInner(ViewGroup.java:3567) at android.view.ViewGroup.addView(ViewGroup.java:3399) at android.view.ViewGroup.addView(ViewGroup.java:3344) at android.view.ViewGroup.addView(ViewGroup.java:3320) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at […]

无法实例化Fragment

无法实例化片段确保类名存在,是公共的,并且具有公共的空构造函数 是因为我的片段不是静态类吗? 是因为我的片段是一个内部阶级? 如果我将Fragment设为静态类,那么我对findViewById的所有引用都会失败,这意味着很多重构。 如何在不将内部Fragment变成静态类的情况下解决这个问题?

ScrollView中的视图与配置的父级不匹配

我有一个ViewPager和一个带标签的ActionBar。 其中一个选项卡有一个ListView,当我点击该ListView中的一个选项时,我添加了一个子Fragment,它是该行的详细视图。 该详细视图是一个ScrollView,里面有一个LinearLayout。 ScrollView是match_parent/match_parent ,其中的LinearLayout是width=match_parent和height=wrap_content 。 在手机大小的模拟器上,详细视图会根据需要填充屏幕,但在平板电脑上,详细视图仅覆盖屏幕宽度的一部分…即使ScrollView的宽度和LinearLayout的宽度为两个match_parent。 … 这是滚动视图的样式: match_parent match_parent 以下是LinearLayout内容的样式: match_parent wrap_content 15dp 15dp vertical @drawable/image_legal_paper_tile 内容视图有一个重复的背景image_legal_paper_tile ,这是: 因此,图像应水平拉伸并重复,从而在背景中创建黄色合法纸垫。 这就是列表和详细视图看起来像手机模拟器: 这就是真实平板电脑上的列表和详细视图。 黄色的合法垫片段应该填满整个屏幕的宽度,但事实并非如此。 编辑: 这是背景法律文件图像: 它宽320像素。 手机模拟器宽480像素,图像正确拉伸,以填充屏幕宽度。 然后按预期垂直重复。 但是,它不会拉伸以填充平板电脑上的屏幕宽度。 平板电脑上显示的宽度不是图像的原始大小,因为它会根据内容更改大小。 片段首次加载时,它是一个宽度。 然后我填写字段并执行计算,在内容视图的底部添加一些文本。 该文本比现有内容更宽,因此在设置文本时,片段的宽度会增加以支持更宽的内容。 所以,简而言之,不,平板电脑上的宽度不是图像的原始尺寸。 图像是伸展的,只是没有伸展。

通过触摸到下面的视图

在我的应用程序中,我在活动的顶部有一个片段。 片段正在填满整个屏幕。 片段的一部分是透明视图,您可以看到(属于活动)下的视图。 有没有办法将触摸事件传递到片段透明视图下的视图? 谢谢!