Articles of android fragments

什么时候片段最终附加到活动?

我有一个主要片段,里面有一个viewpager。 此viewpager有2页(列表片段)。 当我启动激活时,显示主片段,我还显示第一个分页片段。 此分页片段使用AsyncTask显示来自db的数据。 在主要片段中我有: @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); onPageSelected(0); } @Override public void onPageSelected(int position) { Fragment fragment = (Fragment) pagerAdapter.instantiateItem(viewPager, position); if (fragment instanceof IPagedFragment) { ((IPagedFragment) fragment).onShown(getActivity()); } } 界面是: public interface IPagedFragment { void onShown(FragmentActivity activity); } 我遇到的第一个问题是我必须将活动作为parameter passing,因为当onShown时,活动仍为空。 此外,分页片段使用类似于LoginActivity样本的进度条逻辑。 我也得到以下exception: IllegalStateException:片段PagedFragment1 {4201f758}未附加到android.support.v4.app.Fragment.getResources上的Activity(Fragment.java:620) 那么,一旦分页片段完全可用于UI,开始从db检索数据的正确阶段是什么?

每个活动都有一个片段是一个很好的练习(基于Android Studio)?

在新的Android Studio中,每次我从向导创建活动时,它将创建以下结构: public class LoginActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); if (savedInstanceState == null) { getFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.login, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: return true; } return super.onOptionsItemSelected(item); […]

当我使用其他片段时,viewpager在棒棒糖5.0中无法正常工作

这个问题只发生在棒棒糖中。 kitkat和以前的版本正常工作! 问题是我使用了一个页面视图实现了一个滑块,在第一个片段中我有两个按钮的登录片段。 当应用程序启动时没有问题,但是当我使用页面视图更改片段并返回到登录片段时,按钮不起作用。 按钮将registry单或登录表单加载到同一个片段中。 没有错误,只有按钮什么都不做。 这是代码: public class ScreenSlideActivity extends ActionBarActivity { /** * The number of pages (wizard steps) to show in this demo. */ private static final int NUM_PAGES = 5; /** * The pager widget, which handles animation and allows swiping horizontally to access previous * and next wizard steps. */ […]

Android – 将地图v2实施到导航抽屉

我试图合并两个Android演示程序,但我无法正确。 我尝试了几种方法,但我无法理解。 你可以帮我吗? 这是我的错误消息: 09-20 03:28:25.617: E/AndroidRuntime(20108): FATAL EXCEPTION: main 09-20 03:28:25.617: E/AndroidRuntime(20108): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.navigation/com.example.android.navigation.MainActivity}: android.view.InflateException: Binary XML file line #18: Error inflating class fragment 09-20 03:28:25.617: E/AndroidRuntime(20108): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 09-20 03:28:25.617: E/AndroidRuntime(20108): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 09-20 03:28:25.617: E/AndroidRuntime(20108): at android.app.ActivityThread.access$600(ActivityThread.java:141) 09-20 03:28:25.617: E/AndroidRuntime(20108): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 09-20 03:28:25.617: E/AndroidRuntime(20108): at android.os.Handler.dispatchMessage(Handler.java:99) 09-20 […]

使用TabLayout的片段内的ScrollView不滚动,为什么?

我是一个在Android开发中的菜鸟,我在加密的入门课程,所以我决定结合两个,并使这个应用程序。 我使用TabLayout为每个密码方法(RSA和XOR)创建一个选项卡,并使用一个选项卡指示和帮助。 一切都很完美,直到我在帮助选项卡中添加了一个带有说明的scrollView。 scrollView不滚动,我不知道为什么,我一直在网上寻求帮助,并做每个可行的解决方案,如更改宽度和高度ScrollView属性,我卡住了,你能帮我吗? 截图 —–编辑3/02/16 —– **我的main_activity.xml ** —– //编辑3/02/16 —– 这是我的tab_fragment_3.xml 这是我的TabFragment3.java public class TabFragment3 extends Fragment { TextView linkAcademy; TextView linkRsa; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.tab_fragment_3, container, false); linkAcademy = (TextView) view.findViewById(R.id.linkAcademy); linkAcademy.setMovementMethod(LinkMovementMethod.getInstance()); linkRsa = (TextView) view.findViewById(R.id.linkRSA); linkRsa.setMovementMethod(LinkMovementMethod.getInstance()); return view; } 我的PagerAdapter.java public […]

在使用空的while循环初始化片段之前等待导航抽屉关闭

根据DrawerLayout文档,“避免在animation期间执行昂贵的操作,例如布局,因为它可能导致口吃”。 因此,我试着在继续之前等待抽屉关闭: @Override public void onItemClick(AdapterView parent , View view , int position , long id) { // Close the drawer mDrawerLayout.closeDrawer(mDrawerList); ExecutorService es = Executors.newSingleThreadExecutor(); final int mPosition = position; Thread navThread = new Thread(new Runnable() { @Override public void run() { // Wait for the drawer to close while (mDrawerLayout.isDrawerOpen(mDrawerList)); // Initialize the […]

无法在ListFragment上设置自定义列表视图

我正在尝试在ListFragment上设置自定义Listview布局,我一直在重新研究,我仍然无法让它工作。 我是android的新编程,所以我非常感谢你的帮助。 这是我的listFragment类 public class ListCins extends ListFragment { public static ArrayList cins; private ListView listView; private pListAdapter mAdapter; public static ListCins newInstance() { ListCins f = new ListCins(); return f; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //Los fragments soportan presentar un msj cuando la lista esta vacia. setEmptyText(“Nothing yet, but working”); } […]

操作栏在用片段替换时向下移动

我正在为活动添加一个片段,然后我用第二个片段替换该片段。更换第二个片段后,操作栏稍微向下移动 我的活动代码 public class MyActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.meetinglist_activity); Fragment first_fragment = new FirstFragment(); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.add(R.id.content_frame, first_fragment).commit(); } 在第一个片段的按钮单击中替换第二个片段 public class Firstfragment extends Fragment { FloatingActionButton new_fab; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View list_view=inflater.inflate(R.layout.meetingslist_fragment,container,false); new_fab=(FloatingActionButton)list_view.findViewById(R.id.meeting_new); new_fab.setOnClickListener(new View.OnClickListener() { @Override […]

使用Robolectric 3.0测试碎片

我有两个片段附加到一个活动。 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LoginFragment loginFragment = new LoginFragment(); FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(android.R.id.content,loginFragment); fragmentTransaction.commit(); } public void userReg(View view){ RegisterFragment regFragment = new RegisterFragment(); FragmentManager fragmentManager1 = getSupportFragmentManager(); FragmentTransaction fragmentTransaction1 = fragmentManager1.beginTransaction(); fragmentTransaction1.addToBackStack(“added”); fragmentTransaction1.replace(android.R.id.content,regFragment); fragmentTransaction1.commit(); } } 注册片段通过按钮附加。 现在我想在robolectric […]

从Map片段切换到另一个Fragment并返回

我有一个片段活动,可以在按钮点击时切换片段。 我切换的两个片段是: 谷歌地图android v2片段 另一个带有文本视图的片段 这是我切换片段的方式: public void onClick(View v) { FragmentManager fm = getSupportFragmentManager(); if(tv.getText().toString().equalsIgnoreCase(“Click ME!!”)){ tv.setText(“MAP”); if (fm != null) { if(map == null){ map = new Map(); } FragmentTransaction ft = fm.beginTransaction(); ft.replace(R.id.lay_contaier, map); ft.commit(); } } else{ tv.setText(“Click ME!!”); if (fm != null ){ FragmentTransaction ft = fm.beginTransaction(); ft.replace(R.id.lay_contaier,new empty()); ft.commit(); […]