Articles of android fragments

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

我使用ActionBarSherlock和Fragments设置了带滑动标签的操作栏。 我希望每个标签都有不同的操作栏标题。 如果我可以设置图像而不是标题,那将会很棒,因此每个标签都会有不同的动作栏图像标题。 我将不胜感激任何建议和教程链接! 谢谢:) 这是我的代码: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, […]

以编程方式在Fragment内部使用ImageButton扩展布局

我是android开发的新手,我当前正在使用tabhost创建一个应用程序,并使用TabActivity在不同的活动之间切换。 这个应用程序工作正常,但我最近发现TabActivity已被弃用,我应该使用片段代替。 所以,我按照这个伟大的教程解释如何这样做: http : //thepseudocoder.wordpress.com/2011/10/04/android-tabs-the-fragment-way/ 大多数工作正常,但我的问题是我的一些旧活动,现在碎片是使用这种方法膨胀ImageButton: private void displayLevelButtons() { LayoutInflater lf = getLayoutInflater(); btns = lf.inflate(R.layout.mallmapactivity_level_buttons, null, false); mBtnLevelDown = (ImageButton) btns.findViewById(R.id.btn_level_down); mBtnLevelUp = (ImageButton) btns.findViewById(R.id.btn_level_up); mBtnLevelDown.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { levelDown(); updateLevelButtons(); } }); mBtnLevelUp.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { levelUp(); updateLevelButtons(); } }); LayoutParams […]

动态添加片段

我很困惑。 根据这个和这个以及许多其他来源,无论是在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对象。 为什么我仍然得到“ FragmentTransactiontypes中的方法add(int,Fragment,String)不适用于参数(int,RecommendedFragment,String) ”错误消息?

调试时,Android findFragmentByTag返回null

背景: 我正在编写一个Android应用程序,其活动可以由许多片段中的一个填充。 相对而言,我需要将一组数据传递给活动片段,以便它可以相应地更新UI。 要获取当前片段,我调用getfragmentManager().findFragmentByTag()并将返回的片段getfragmentManager().findFragmentByTag()为我的自定义片段类。 问题: 上述方法通常可以正常工作。 但是, findFragmentByTag()偶尔会返回null。 经过进一步调查,我得出的结论是,只有当我从Android工作室运行或调试时才会发生这种情况(即使这样,每次都不会发生)。 相关守则: protected void onCreate(Bundle savedInstanceState){ //Do lots of stuff currentFragmentTag = “”; getFragmentManager().addOnBackStackChangedListener( new FragmentManager.OnBackStackChangedListener() { public void onBackStackChanged() { if (getFragmentManager().getBackStackEntryCount() > 0) { currentFragmentTag = getFragmentManager().getBackStackEntryAt(getFragmentManager().getBackStackEntryCount() – 1).getName(); } } }); init(); //Do some more stuff //this should always be the case if (currentFragmentTag.equals(LOGIN_FRAGMENT_TAG)) […]

圆形片段磨损手表在模拟器/手表中变黑

我在Android Wear圆形手表上看到黑屏(在广场上可以使用)。 两种布局在Android Studio布局设计中都显示正常。 项目测试: https://bitbucket.org/powder366/motoblack 我使用以下代码: public class MyFragment extends Fragment { … @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View contentView = inflater.inflate(R.layout.my_fragment, container, false); … 布局my_fragment: 从以下地址拨打电话: public class MenuAdapter extends FragmentGridPagerAdapter … public MenuAdapter(Context context, FragmentManager fm, Handler handler) { super(fm); mContext = context; mHandler = handler; myFragment […]

AppCompat Action Bar库未显示添加的片段

编辑 :如果我扩展FragmentActivity而不是ActionBarActivity我的布局再次显示(当然没有ActionBar )。 ActionBar在4.x设备上按预期工作,但在我的2.3设备上,我得到的只是ActionBar ,下面是一个空白屏幕 。 Fragment似乎没有被添加到Activity 。 的themes.xml @style/Widget.ActionBar 主题-v11.xml @style/Widget.ActionBar styles.xml @color/actionbar_background @color/actionbar_background 活动onCreate() FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); myFragment = new WallFragment(); fragmentTransaction.add(android.R.id.content, myFragment, myFragment.FRAGMENT_TAG); fragmentTransaction.commit(); 我正在使用Gradle在我的应用程序中包含AppCompat ActionBar库。 compile ‘com.android.support:appcompat-v7:18.0.+’

getSupportFragmentManager()。findFragmentById为Android中的片段中的谷歌地图返回null?

我的Google地图有问题,即getSupportFragmentManager()。findFragmentById返回null。 你知道如何解决这个问题吗? 这是代码: fragment_map.xml: MapsFragment.java: public class MapFragment extends Fragment implements OnMapReadyCallback, android.location.LocationListener public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SupportMapFragment mapFragment = (SupportMapFragment) this.getActivity().getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); … 我在Activity中有Google地图,它可以使用代码: SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); 我试图在片段中重用它,因为我需要片段中的映射,而不是活动,但它不起作用。 我试过了: 在“onCreateView”函数中调用此代码 SupportMapFragment mapFragment = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.map); GoogleMap mGoogleMap = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap(); 不推荐使用,应用程序崩溃 SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map); 和类似的变化,但在所有情况下,我得到mapFragment null。 […]

停止Android Studio使用支持库

我正试图让Android Studio中的Android项目不使用支持库。 我的问题是,当我使用片段时,它会期待支持片段并导致应用崩溃。 我的Min SDK是14,我的Target SDK是19.我的理解是因为我的目标是这些版本,所以我不需要支持库。 如我错了请纠正我。 我正在尝试更正此错误java.lang.ClassCastException: com.google.android.gms.maps.MapFragment cannot be cast to android.support.v4.app.Fragment 。 而且我知道我可以通过使用SupportMapFragment来修复它。 但我不想这样做。 我想使用常规的MapFragment 所以我的主要问题是如何让它停止期待支持库片段并只使用常规片段。 我还有其他片段的问题,而不仅仅是地图。

Android ScrollView在底部被切断

我试图以编程方式将从HTML文件中选取的表单字段添加到LinearLayout。 我在底部有一个下一个按钮,但它在显示屏上不断被切断。 我在平板电脑上尝试过,它仍然没有出现。 这是应用程序的屏幕截图: 正如您所看到的,元素正在渲染,但最后一个元素由于某种原因而在屏幕上运行。 片段的XML: 调用Activity的XML: 我正在调用一个方法formInflator ,我在片段的onCreateView并从片段传递LinearLayout和一个Elements对象(来自Jsoup库),其中包含我想要放在LinearLayout中的所有元素: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment view = inflater.inflate(R.layout.fragment_property_info, container, false); nextButton = (Button) view.findViewById(R.id.nextButton); nextButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onButtonPressed(); } }); helpers.formInflator((LinearLayout) view.findViewById(R.id.linear_layout_property_info), generator.propertyTextElements); return view; } 这是方法formInflator : […]

片段中的super.onCreateView

我完成了针对Android手持系统的移动应用编程的Coursera课程。 课程中的一个示例代码告诉我们如何对我们进行分片。 基本上它的作用是将屏幕分成两个片段,一个用于书名,一个用于书中的引用。 如果用户单击左侧片段中的标题,则从该书中关联的引用将显示在右侧的片段中。 这是mainActivity的代码: package course.examples.Fragments.StaticLayout; import android.app.Activity; import android.os.Bundle; import android.util.Log; import course.examples.Fragments.StaticLayout.TitlesFragment.ListSelectionListener; public class QuoteViewerActivity extends Activity implements ListSelectionListener { public static String[] mTitleArray; public static String[] mQuoteArray; private QuotesFragment mDetailsFragment; private static final String TAG = “QuoteViewerActivity”; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mTitleArray = getResources().getStringArray(R.array.Titles); mQuoteArray = getResources().getStringArray(R.array.Quotes); setContentView(R.layout.main); […]