Articles of android fragments

在ViewPager中devise一个Horizo​​ntalScrollView或者使用fragment:

我需要devise下面的屏幕,我需要你的build议: 说明: 标题是静态的/固定的,我不需要做任何事情。 黄色:这是一个有趣的部分,我需要devise一个ViewPager类似的屏幕,可以向左/向右滚动最大4个屏幕。 红色:在每个屏幕上,我需要添加一个表格/网格,如果不适合屏幕尺寸,也可以滚动。 绿色:可以使用屏幕底部的绿色button或通过滚动ViewPager来完成页面切换。 问题是:这种行为可以使用ViewPager实现,还是应该使用Fragments ? 如果片段是要走的路,那么我将如何使用滑动手势来实现页面切换? 如果它是一个ViewPager然后如何添加内部滚动,以及如何使用底部的button来控制它? 任何帮助将不胜感激,谢谢。

更改每个选项卡在Android上滑动的操作栏标题

我已经使用ActionBarSherlock和Fragments设置了滑动选项卡的操作栏。 我想为每个选项卡有不同的操作栏标题。 如果我可以设置图像而不是标题,这将是非常好的,所以每个标签会有不同的操作栏图像标题。 我将不胜感激任何build议和链接教程! 谢谢:) 这里是我的代码:TabActivity.java package com.tptabs; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.SherlockFragmentActivity; import android.support.v4.view.ViewPager; public class TabActivity extends SherlockFragmentActivity { private ViewPager mViewPager; private TabAdapter mTabsAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mViewPager = new ViewPager(this); mViewPager.setId(R.id.pager); setContentView(mViewPager); final ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); mTabsAdapter = new TabAdapter(this, […]

片段活动 – 应用程序死亡,没有保存的状态

我只有很less的用户面对一个非常混乱的问题。 当在片段内按下一个button时,会发生错误,该片段将启动另一个片段活动。 这是堆栈跟踪: I/20:22:23.901 ActivityManager( 1668) Start proc com.brandall.nutter for activity com.brandall.nutter/.ActivityHomeFragment: pid=8956 uid=10125 gids={50125, 3003, 3001, 3002, 1015, 1023, 1006, 1028} I/20:22:23.881 WindowState( 1668) WIN DEATH: Window{41ed1948 u0 com.brandall.nutter/com.brandall.nutter.ActivityLinkAppsFragment} W/20:22:23.881 ActivityManager( 1668) Force removing ActivityRecord{411c4188 u0 com.brandall.nutter/.ActivityLinkAppsFragment}: app died, no saved state I/20:22:23.881 WindowState( 1668) WIN DEATH: Window{41b6a178 u0 Toast EXITING} W/20:22:23.881 InputDispatcher( 1668) […]

dynamic添加碎片

我彻底困惑。 根据这个以及其他许多来源,无论是在SO还是其他地方,我都应该能够做到以下几点: import android.os.Bundle; import android.app.Activity; import android.app.FragmentTransaction; import android.view.Menu; public class MainScreenActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_screen); MainRightFragment mrf = new MainRightFragment(); RecommendedFragment rf = new RecommendedFragment(); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.add(R.id.main_search_boxes, mrf, "fragmentright"); ft.add(R.id.main_left_side, rf, "fragmentreccomend"); } } R.id引用指向我的.xml文件中的FrameLayout对象。 为什么我仍然得到“ typesFragmentTransaction中的方法add(int,Fragment,String)不适用于参数(int,RecommendedFragment,String) ”错误消息?

不同片段的菜单

我有一个有2个片段的活动。 1片段是可见的,每个片段有不同的选项菜单。 我可以通过两种不同的方式来实现这一行为。 1 – 我可以通过在每个联系人中调用onCreateOptionsMenu来为每个片段添加不同的菜单。 2 – 我只能在活动级别有一个菜单,并且可以select在onPrepareOptionsMenu显示特定的选项 我想知道的是: 哪个是实现这个function的最佳方式? 什么build议?

在button/图像点击切换导航抽屉“打开”

我创build了一个连接到包含一个图像视图的XML的片段。 导航抽屉(使用操作栏compat)在activity_main.java内部设置,工作正常。 我想要做的是,当我点击片段内的图像时,导航抽屉应该“切换打开”。 在onCreateView方法内的下面的代码返回一个空指针: public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedinstanceState) { View view=inflater.inflate(R.layout.home, container, false); ImageView img=(ImageView)view.findViewById(R.id.imageView1); // Defined inside activity_main.xml final LinearLayout mDrawer = (LinearLayout) view.findViewById(R.id.drawer); // Defined inside activity_main.xml final DrawerLayout mDrawerLayout = (DrawerLayout)view.findViewById(R.id.drawer_layout); img.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mDrawerLayout.openDrawer(mDrawer); } }); return view; } 在以下语句中返回空指针: mDrawerLayout.openDrawer(mDrawer);

将操作栏更改为从片段内重叠

我有一个片段(片段1)被replace为另一个片段(片段2)。 片段1被放置在堆栈上。 我正在使用兼容模式(而不是ActionBarSherlock)。 这是我的问题。 我希望操作栏在某些片段中显示为叠加,而不是其他部分。 具体来说,当显示Fragment 2时,我希望它出现在叠加层中,然后在Fragment 2退出时再回到正常的操作栏。 片段1有一个常规的操作栏,始终可见。 但是,当我用Fragment 2replaceFragment 1时,我需要在5秒后隐藏操作栏。 如果有触摸事件,则再次显示操作栏。 这一切工作正常,但是,每当操作栏被隐藏或显示时,片段2都会重新绘制。 因此,我想让Fragment 2中的操作栏显示为叠加层。 我知道我可以改变操作栏覆盖,但我不知道如何从片段内以编程方式做到这一点。 我不想改变它的每一个片段,只是片段2。 思路?????

与Uber一样,ListView中显示的带有Google Places的AutoCompleteTextView

我需要制作类似于此的屏幕。 我认为它有autocompletetextview和listview来显示返回的结果。 谷歌的地方API用于这里自动build议的地方和列表视图适配器相应地更新。 请任何forms的帮助表示赞赏。 提前致谢。 在AutoComplete上也检查了android示例项目。 但它没有任何listview来显示结果。 而是在autocompletetextview微调器中显示结果。 任何修改,我们可以做这个项目 链接到谷歌示例项目

Android中嵌套片段之间的通信

我最近学会了如何在Android中制作嵌套的片段 。 不过,我不知道沟通应该如何发生。 从阅读片段通信文档,我知道这一点 所有片段到片段的通信都是通过关联的活动完成的。 两个碎片不应该直接沟通。 这对于活动中的同胞片段是有意义的,但是对于父母 – 孩子片段交stream没有多大意义。 我是否需要一直到活动只为儿童片段与父母的片段? 如果答案是一个简单的“是”,那么我可以做到这一点。 如果是“否”,那么代码devise会是什么样子? 我在Nested Fragment文档中看到,可以使用getParentFragment()来获取父片段的引用。 那么这是否意味着孩子应该直接与父母沟通? 这与正常片段与父活动进行通信所鼓励的情况相反。

如何使用kotlin使用片段

我无法find如何使用kotlin使用片段。 我在onCreateView方法中遇到错误,请帮助我。 ListaFragment.kt: class ListaFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle): View? { val view = inflater.inflate(R.layout.fragment_lista, container, false) return view } } fragment_lista.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAlignment="center" android:text="Hello"/> </LinearLayout> MainActivity.kt: class MainActivity : AppCompatActivity() { private var listaFragment: ListaFragment? = […]