Articles of android fragments

ViewPager里面的片段问题

我有查看寻呼机的问题,它在一些片段内。 要使用视图寻呼机,我正在使用FragmentPagerAdapter。 确定我收到了java.lang.IllegalStateException:在尝试运行我的应用程序时递归进入executePendingTransactionsexception。 大多数人都认为将FragmentPagerAdapter放在其他片段中是不可能的,所以如果这个问题无效,我很抱歉。 我只是希望有人对这个问题及其可能的解决方案有一些新的想法。 PS我有一个建议在AsyncTask中设置适配器(我可以澄清这种情况,如果有人需要它),但这个解决方案有一些与恢复这样的片段状态相关的错误,所以它对我有用。

将标签放在屏幕的底部

我想在屏幕的底部放置标签。 为此,我有以下代码: package info.androidhive.tabsswipe; import info.androidhive.tabsswipe.adapter.TabsPagerAdapter; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; public class MainActivity extends FragmentActivity implements ActionBar.TabListener { private ViewPager viewPager; private TabsPagerAdapter mAdapter; private ActionBar actionBar; // Tab titles private String[] tabs = { “Top Rated”, “Games”, “Movies” }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); […]

如何检查片段是否存在?

我试图与活动中的片段进行对话,但我不确定该片段是否可见。 如果片段不存在,我甚至不能进行空检查,因为它会因为强制转换而抛出exception。 如何检查片段是否存在? PlayerFragment = (PlayerFragment) mManager.findFragmentById(R.id.bottom_container); playerFragment.onNotificationListener.updateUI();

Android:从Fragment更改ActionBar菜单项

任何人都可以提供一个快速示例,说明如何根据片段中发生的事情更改“活动”操作栏的内容? 我的意图: 普通菜单项 – >片段中的某些内容被移动 – >菜单项更改为保存/放弃按钮。 我的第一个冲动是在活动和片段中设置广播接收器以进行串扰,但我不确定这是否正确。

Android如何编辑Fragment中的Action栏菜单

我创建了一个使用Fragment的应用程序。 从我的MainActivity中我设置了ActionBar。 但在我的一个片段中,我需要修改动作图标并单击。 所以使用下面的代码,当我加载我的片段时,它仍然显示MainActivity的操作栏菜单 这是我的MainActivity: public void restoreActionBar() { actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); actionBar.setDisplayShowTitleEnabled(true); actionBar.setTitle(mTitle); // enable ActionBar app icon to behave as action to toggle nav drawer actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true); } @Override public boolean onCreateOptionsMenu(Menu menu) { if (!mNavigationDrawerFragment.isDrawerOpen()) { // Only show items in the action bar relevant to this screen // if the drawer is not […]

从片段到活动的意图

我试图使用button转到另一个页面,但它总是失败。 这是我的第一类XML: public class FindPeopleFragment extends Fragment { public FindPeopleFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_home, container, false); return rootView; } public void goToAttract(View v) { Intent intent = new Intent(getActivity().getApplication(), MainActivityList.class); startActivity(intent); } } 这是我的XML: 这是我的stacktrace ..这是我使用onclicklistener时的结果 12-30 16:54:28.006: E/AndroidRuntime(992): FATAL EXCEPTION: main 12-30 16:54:28.006: E/AndroidRuntime(992): […]

FragmentTransaction.commit()后不立即调用onCreateView()

我有一个活动,我动态地替换片段: private void goToFragment(Fragment newFragment, String tag) { FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.fragment_container, newFragment, tag); ft.addToBackStack(null); ft.commit(); } 现在,我想访问片段内的视图,这样我就可以在调用goToFragment后立即将数据(我存储在我的活动中)放入其中。 问题是,在片段完全呈现之前,片段的onCreateView没有被调用,至少在我的理解中。 我知道覆盖片段中的onAttach(Activity activity)是一种方法,但是我必须将它专门用于我的活动 – 我只是想避免这种情况,因为我认为片段的不良做法是取决于特定的活动。 据我所知, Fragment没有实现任何监听器(作为主题)。 所以我想我必须创建自己的监听器(使用Observer模式使片段成为主题,活动成为观察者),然后在onCreateView或onAttach完成时调用它,然后最终使用需要设置的数据。 但是,我需要为几个片段执行此操作,因此我必须为每个片段创建一个侦听器,我再次认为这是不好的。 有没有更好/更简单的方法来做到这一点?

android.support.v4.app.FragmentManagerImpl.makeInactive中的NullPointerexception

我在Android支持库中看到一个奇怪的例外 – 堆栈跟踪如下。 可能导致这种情况的任何想法? 我无法在我的任何设备上重现exception,但Google Play DevConsole中似乎有很多可见的内容。 java.lang.NullPointerException at android.support.v4.app.FragmentManagerImpl.makeInactive(FragmentManager.java:1133) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1044) at android.support.v4.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1171) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:582) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:420) at android.os.Handler.handleCallback(Handler.java:608) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:5045) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method)

获取片段中的屏幕宽度和高度

如果我在我的应用程序中扩展活动,我可以获得宽度和高度: DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int height = displaymetrics.heightPixels; int wwidth = displaymetrics.widthPixels; 要么 Display display = getWindowManager().getDefaultDisplay(); stageWidth = display.getWidth(); stageHeight = display.getHeigth(); 但目前我扩展了fragement,我不能使用上面的代码来获得宽度。

Android在主题中全局设置编辑文本样式不起作用

我面临着问题。 我试图让我的应用程序中的编辑文本看起来与主题的帮助相同。 我已经在在线工具(9-patch图像)的帮助下生成了样式,并尝试在我的主题中设置它 @color/blue @color/darkblue @color/cornflowerblue true false @style/EditTextDefault 我的编辑文字样式 @drawable/edit_text_holo_light @color/light_blue @dimen/margin_edit_text_default @dimen/margin_edit_text_default @dimen/margin_edit_text_default 但是,如果使用编辑文本而不为每个编辑文本手动指定样式,则此操作无效。 这不起作用 这很有效 我知道layout_ * params不会影响它们是否在主题中使用,但其他属性应该有效。 请帮助解决这个问题。