Articles of android fragments

如何在Fragment中的WebView中添加“Go Back”function?

更新:解决了! 问题与我的Viewpager而不是WebView有关。 我正在尝试在我的WebView添加一个“Go Back”function,它位于Fragment 。 但我无法弄清楚如何: public final class TestFragment extends Fragment { static WebView mWeb; private View mContentView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mContentView = inflater.inflate(R.layout.webview, null); mWeb = (WebView)mContentView.findViewById(R.id.webview); WebSettings settings = mWeb.getSettings(); settings.setJavaScriptEnabled(true); settings.setSupportZoom(false); mWeb.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); mWeb.getSettings().setBuiltInZoomControls(false); mWeb.loadUrl(“myurl…”); mWeb.setOnKeyListener(new OnKeyListener(){ public boolean onKey(View v, int keyCode, KeyEvent event) […]

Android ViewPager和TabLayout无法快速运行

有TabLayout和ViewPager嵌套片段。 每个片段里面都有listview,所以他们可以一起打电话,现在我遇到了app处理速度慢的问题。 我尝试过一些像凌空图书馆这样的解决方案,但它对我不起作用。 更多我发布我的代码所以请指导我做到最好。 MainTabFragment.java public class MainTabFragment extends Fragment { public static int position_child_tab = 0, three_childs_tab_position = 0; static int count = -1; int position_tab = 0; Bundle args; MyTabLayout myTabLayout; public MainTabFragment() { // Required empty public constructor } /** * Use this factory method to create a new instance of * […]

如何在Android中创建半透明灰色教程叠加层?

你知道当你第一次运行Android设备时(如果你使用模拟器你会看到很多东西),有一个有用的小教程,关于如何使用启动器和添加小部件,等等。我试图找一个例子这在谷歌,但我不能。 我希望你知道我的意思。 这是每一步都有蓝色“好”按钮的那个。 无论如何,我想为我的应用程序创建一个,但我不确定哪个是最好的方法去做。 我是否创建了一个片段,我可以在常规活动的基础上制作半透明片段并让它仅在第一次运行时出现? 我是否为教程的每个部分制作了一个半透明的.png,并将其覆盖在第一次运行的常规启动器活动上? 如果我做后者,我如何调整所有不同的屏幕尺寸? 我可以在Photoshop中将图像渲染为各种尺寸,但这并不能涵盖所有尺寸。 如果我去片段路线,我可以说“match_parent”而不用担心它。 但后来我必须弄清楚Fragments是如何工作的,而且他们让我感到困惑。

点击片段后面的隐形布局:

我创建了几个片段,然后按以下方式添加第一个片段: mainFragment = (MainFragment) MainFragment.create(); getSupportFragmentManager().beginTransaction() .setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right) .add(R.id.content, mainFragment, MAIN_FRAGMENT_TAG) .commit(); 第二个片段以这种方式添加: getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right) //.hide(mainFragment) .add(R.id.content,VenueFragment.create(vid), “Venue Fragment”) .addToBackStack(null) .commit(); setDrawerIndicatorEnabled(false); 现在你看到hide方法没有应用于这个事务,并且VenueFragment被打开了,这种情况下的问题是当VenueFragment打开时(并且它是一个全屏视图)按下这个片段的空部分会调用MainFragment可点击的视图。 我怎么能阻止这个? 如果我使用hide选项,那么它不会发生但是由于某种原因,用于移除MainFragment的animation正在上升并且这会产生奇怪的体验。

恢复时不恢复ViewPager中的片段视图

我有ActionBar Tabs设置。 它由4个选项卡组成。 一切都很好,直到我离开TabbedFragment并返回。 我创建这样的标签: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final ActionBar actionBar = getActionBar(); tabs = Lists.newArrayList(); tabs.add(new TabDefinition(“Tab 1”)); tabs.add(new TabDefinition(“Tab 2”)); tabs.add(new TabDefinition(“Tab 3”)); tabs.add(new TabDefinition(“Tab 4”)); for (TabDefinition tab : tabs) { actionBar.addTab(actionBar.newTab() .setText(tab.text) .setTag(tab.tag) .setTabListener(this)); } } 并初始化适配器,如下所示: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { […]

Listview页脚不显示

我已经创建了一个带有延迟加载的动态列表视图。 我试图向列表视图显示一个页脚,这样当用户滚动到列表视图的底部时,它将显示“加载更多项目”(作为页脚)并且它将加载更多项目。我已经实现了延迟加载。 我已经设置了页脚,但它没有显示在列表视图中。 请帮帮我。 包含listview的Tabfragment类: package com.example.abe; import java.util.ArrayList; import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.os.Build; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; @TargetApi(Build.VERSION_CODES.HONEYCOMB) public class Tab1Fragment extends ListFragment { ListView lv; Activity act = this.getActivity(); Context ct = […]

Android片段上的“内容视图尚未创建”

我正在使用带有viewpager设置的Android Fragments。 基本上你可以刷卡5个标签。 5个中的4个包含由MySQL表填充的ListFragments ; 这是在AsyncTask 。 当我快速滑动时,我有时会收到此错误: 09-01 07:54:01.243: E/AndroidRuntime(19706): FATAL EXCEPTION: main 09-01 07:54:01.243: E/AndroidRuntime(19706): java.lang.IllegalStateException: Content view not yet created 09-01 07:54:01.243: E/AndroidRuntime(19706): at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328) 09-01 07:54:01.243: E/AndroidRuntime(19706): at android.support.v4.app.ListFragment.getListView(ListFragment.java:222) 09-01 07:54:01.243: E/AndroidRuntime(19706): at com.—.—.MasterCat$TopFrag$TopTask.onPostExecute(MasterCat.java:570) 09-01 07:54:01.243: E/AndroidRuntime(19706): at com.—.—.MasterCat$TopFrag$TopTask.onPostExecute(MasterCat.java:1) 09-01 07:54:01.243: E/AndroidRuntime(19706): at android.os.AsyncTask.finish(AsyncTask.java:631) 09-01 07:54:01.243: E/AndroidRuntime(19706): at android.os.AsyncTask.access$600(AsyncTask.java:177) 09-01 07:54:01.243: […]

我怎么能用setRetainInstance(true)破坏碎片并将它们添加到backstack?

setRetainInstance上的文档说: 这只能用于不在后栈中的片段。 所以我开始玩它。 我有一个Activity添加第一个frag A FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.replace(R.id.content, new PackageFragment()); ft.commit 然后从这个frag我运行一个父Activity的方法,它将frag B添加到backstack FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.replace(R.id.content, new OrderFragment()); ft.addToBackStack(null); ft.commit(); 然后我从onCreate,onDestroy,onSaveInstanceState,onActivityCreated ……等创建log msg 我尝试了这个过程的两个版本。 在每个片段上旋转设备。 默认 一切都如预期。 onCreate,onDestroy on fragment fire setRetainInstance(真) 一切都如预期的那样? onCreate,onDestroy片段不要开火 当片段都在后台时,一切似乎都有效..所以为什么文档说我不应该使用它? 我可能遇到麻烦的情况是什么? 谢谢

在Android中将一个片段滑过另一个片段

在android中,我们可以将片段滑过另一个吗? 例如,在下图中: 有两个片段。 一个是红色,另一个是蓝色。 如果用户将手指按在黑色箭头上并将其向右拖动,则红色片段也随之拖动,从而覆盖蓝色片段。 最后,红色片段覆盖整个蓝色片段。 此外,如果用户在将红色片段拖动到不到一半的蓝色片段之前抬起他的手指,则红色片段应该回到其原始位置(因此不覆盖蓝色片段)。 然而,如果用户不抬起他的手指(即拖动箭头)直到红色片段覆盖蓝色片段的一半以上或整个蓝色片段,则红色片段应覆盖整个蓝色片段。 此外,如果红色片段(如, Buttons , EditTexts等)上有任何视图,那么它们也将相应地重新resize。 有没有办法做到这一点? 如果是,那怎么样?

Android导航栏涵盖了viewpager内容

我无法阻止系统导航栏覆盖我的内容! 我滚动到recyclerview的最底部,但它隐藏在导航栏后面。 这是我的XML布局。 这是您在图片中看到的片段布局。 我已经尝试将android:fitsSystemWindows =“true”添加到我可以进行的每一个布局中但是没有用。 其他线程提到从条形图计算的添加保证金,但这似乎不是正确的解决方案。 我直接从Google的CheesSquare应用程序演示了appbarlayout这个布局,看起来它的工作正常。