Articles of android fragments

如何将应用程序对象分解成片段类

我正在改变我的Android手机应用程序,以支持平板电脑和手机。 为此,我将我的活动类更改为片段。 在我的活动类中,我创build了一个我的应用程序类的实例,如下所示: appCtx = (UnityMobileApp) getApplication(); UnityMobileApp是我的应用程序类。 现在我想在我的片段类中创build相同的实例。 你们能帮我解决吗?

Android:你可以嵌套片段?

是否可以在另一个Fragment的布局中粘贴Fragment ? 有没有人试过这个?

对于通过FragmentTransaction添加的片段,fitsSystemWindows效果消失

我有一个活动与导航抽屉和全出血碎片(顶部的图像,必须出现在半透明的棒棒糖系统栏后面)。 虽然我有一个临时的解决scheme,只要在Activity的XML中有<fragment>标签就可以使Fragment膨胀,但看起来很好。 然后,我必须用<FrameLayout>replace<fragment>并执行片段事务,现在片段不再出现在系统栏后面,尽pipe在所有需要的层次结构中fitsSystemWindows设置为true 。 我相信在<fragment> Activity <fragment>的布局中, <fragment>是如何膨胀的。 我Googlesearch了一些KitKat的解决scheme,但都没有为我工作(棒棒糖)。 activity.xml <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_height="match_parent" android:layout_width="match_parent" android:fitsSystemWindows="true"> <FrameLayout android:id="@+id/fragment_host" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> </FrameLayout> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_height="match_parent" android:layout_width="wrap_content" android:layout_gravity="start" android:fitsSystemWindows="true"/> </android.support.v4.widget.DrawerLayout> fragment.xml之 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="224dp" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> … 当activity.xml是这样的时候它工作: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_height="match_parent" android:layout_width="match_parent" android:fitsSystemWindows="true"> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragment" […]

TabLayout与viewpager不平滑滚动

编辑 我已经按照这些教程来解决这个问题。 http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/ https://guides.codepath.com/android/google-play-style-tabs-using-tablayout http:/ /www.voidynullness.net/blog/2015/08/16/android-tablayout-design-support-library-tutorial/ 但是,在尝试几种解决scheme之后,这个问题依然存在。 这里是演示我面临的问题。自从我陷入这个问题以来,我已经有几个星期了。 链接演示。 我用来testing的设备是Nexus 4和Nexus 5。 带有ViewPager不能平滑滚动。 我需要滑动两次才能在下次点击时移动。 我浏览过网页,但找不到任何解决scheme。 我正在使用最新的支持devise库。 这是gradle文件 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.softoven.ultron" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: […]

匕首2自定义范围为每个片段(或活动等…)

我看了几篇不同的文章,这些文章似乎暗示了在Dagger 2中进行自定义范围设定的两种不同方法: 生存configuration更改第2部分的MVP演示者 ( Github回购 ): 为每个片段使用唯一的自定义作用域,例如分别为Hello1Fragment和Hello2Fragment分别用于Hello1Fragment和Hello2Fragment 在Android上品尝Dagger 2 : 为所有片段使用单个自定义作用域,例如@PerFragment 。 从我所了解的情况来看,就像在方法2中一样,应该可以定义一个可以用于所有片段的单个范围(即@PerFragment )。 事实上(请纠正我,如果我错了),似乎自定义范围的名称是不相关的,它只是在子组件创build(即在应用程序,活动或片段)的重要。 是否有任何用例为每个片段定义一个唯一的作用域,如情况1?

Android工具栏+选项卡布局+抽屉,滚动时隐藏工具栏,并使TabLayout顶部

我有附有抽屉的活动。 抽屉的每个菜单都是一个片段,在其中一个菜单下,我有一个TabLayout片段,每个选项卡都包含一个RecyclerView 。 所以,现在,当我滚动RecyclerView ,标签布局隐藏,但ToolBar仍然在顶部。 我需要的是ToolBar隐藏( scrollFlags:scroll|enterAlways ),而TabLayout应该显示在顶部。 所以目前的设置是: Activity with attached DrawerLayout -> Fragment with TabLayout -> Tab Fragment 1 with RecyclerView -> Tab Fragment 2 with RecyclerView

在后台获取最新的片段

我怎样才能得到最新的片段实例添加在背后(如果我不知道片段标签&ID)? FragmentManager fragManager = activity.getSupportFragmentManager(); FragmentTransaction fragTransacion = fragMgr.beginTransaction(); /****After add , replace fragments (some of the fragments are add to backstack , some are not)***/ //HERE, How can I get the latest added fragment from backstack ??

如何在碎片之间传递值

我是相当新的使用片段。 我只是试图构build一个简单的示例应用程序使用碎片。 我的情况是,我有两个活动,每个活动中有一个片段。 第一个片段有一个edittext和一个button。 第二个片段有一个textview。 当我在edittext中input一个名字并点击button时,第二个片段中的textview应显示在第一个片段的edittext中input的名称。 我能够将第一个片段的值发送到其活动,然后从该活动发送到第二个活动。 现在我怎么在第二个片段里面使用这个值。 这里是Java代码::: package com.example.fragmentexample; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Fragment_1 extends Fragment{ OnFragmentChangedListener mCallback; // Container Activity must implement this interface public interface OnFragmentChangedListener { public void […]

应用程序之后重叠隐藏的碎片被杀死并恢复

我通过隐藏最后一个片段并添加一个新片段(见下面的代码)在片段之间切换 – 将它添加到后备栈 。 这样,用户可以快速切换片段,而无需重新加载片段数据。 这个效果很好,直到应用程序被杀死 (情景:用户使用其他几个应用程序,我的应用程序正在被持续和杀死)。 当用户打开应用程序时,它正在恢复,并显示所有的片段 – 相互重叠 。 问题:恢复的碎片如何以隐藏状态恢复? 也许我错过了一些国旗? 某处? 也许有更好的解决scheme来快速切换片段(不重新加载数据)? 添加片段的示例代码 – 在某处单击时用不同的片段调用几次: FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); fragmentTransaction.hide(lastFragment); fragmentTransaction.add(newFragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); lastFragment = newFragment;

只有在PagerSlidingTabStrip中单击其选项卡时才能加载片段数据

我在我的项目中使用PagerSlidingTabStrip ,并显示片段中的数据。 它是一个很棒的图书馆,效果很好。 每个片段由一个从Web服务加载的学者讲座组成。 访问Web服务的代码位于Fragment的onCreateView方法中。 目前所有片段的数据在被添加到ViewPager的同时被加载。 我想知道是否有任何方式加载碎片的数据只有当用户点击/滑动到特定的选项卡。 并非一次一切。 目前的代码是非常标准的,我从提供的例子[android解决scheme]中获得帮助。 1 寻呼机适配器如下: public class ScholarDetailPagerAdapter extends FragmentPagerAdapter { private final String[] TITLES = { "Scholar Info", "Lectures"}; Scholar _scholar; public ScholarDetailPagerAdapter(FragmentManager fm, Scholar scholar) { super(fm); _scholar = scholar; } @Override public CharSequence getPageTitle(int position) { return TITLES[position]; } @Override public Fragment getItem(int arg0) { if(arg0 […]