小编dou*_*leA的帖子

片段Detatch/Reattach Vs显示/隐藏

我无法找到在没有寻呼机的情况下浏览片段的正确方法,并且在屏幕方向的配置更改期间遇到问题.我在片段上使用Show/Hide来使它们可见并且功能正常但我想知道我是否应该使用Detach/Attach.我也有问题在后台堆栈添加东西,我认为这也是由于使用show/hide.是否更好地使用附加/分离或有一种方法来覆盖后退按钮的作用,使其显示/隐藏最后/当前片段.

行为:我有一个地图片段和一个List片段以及其他一些片段.一切都正确启动,最初工作方向更改.当我导航到列表视图时,它会正确填充,但在方向更改时,列表会重新绘制而不包含数据.地图视图也会重新绘制,并且在我的寻呼机标题指示器后面可见.如果有人可以请我指出正确的方向来解决这个问题,这将是非常棒的.我怀疑这是由我展示和隐藏片段的方式引起的.

这是我创建片段并将其添加到片段管理器的位置.我还展示了我显示/隐藏片段的位置.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map_frags);
    mapViewContainer = LayoutInflater.from(this)
            .inflate(R.layout.map, null);

    setupFragments();
    showFragment(0);
}
public void setListData(String name) {
    bName = name;
    showFragment(1);
}
private void setupFragments() {
    final FragmentManager fm = getSupportFragmentManager();
    final FragmentTransaction ft = fm.beginTransaction();
    mFragment1 = fm.findFragmentByTag("f1");
    if (mFragment1 == null) {
        mFragment1 = new MenuFragment();
        ft.add(mFragment1, "f1");
        ft.hide(mFragment1);
    }
    mMapFragment = (MapFragment) getSupportFragmentManager()
            .findFragmentByTag(MapFragment.TAG);
    if (mMapFragment == null) {
        mMapFragment = MapFragment.newInstance(0);
        ft.add(R.id.fragment_container, mMapFragment, MapFragment.TAG);
    }
    ft.hide(mMapFragment);

    myListFragment = (ListFrag) …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-fragmentactivity

7
推荐指数
1
解决办法
3493
查看次数

PageTabStrip类未找到异常

好吧,我决定只使用pagertitlestrip.我假设我使用的支持库不包含pagertabstrip.我不知道如何解决这个问题因为我认为我已经正确更新了所有内容.编辑:这不再存在吗?当我将PagerTabStrip更改为PagerTitleStrip时,一切正常,但我无法与期望的标题进行交互,因为这就是我想使用PagerTabStrip的原因.

我已经回到基础,找到问题的根源.我开始了一个新项目进口ABS.我设置了一个非常简单的pagerAdapter和一个简单的片段.我使用了一本公共书中的例子,但我仍然得到同样的错误.找不到类别例外.找不到PagerTabStrip.Stack posted每次都会出现相同的错误.如果我删除PagerTabStrip然后一切正常.

XML

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <android.support.v4.view.PagerTabStrip
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top" />

</android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud)

主要活动

package com.example.pagetabswipe;

import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.Menu;

import com.actionbarsherlock.app.SherlockFragmentActivity;

public class MainActivity extends SherlockFragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ViewPager pager = (ViewPager)findViewById(R.id.pager);
        pager.setAdapter(new SampleAdapter(getSupportFragmentManager(), this));
    }
}
Run Code Online (Sandbox Code Playgroud)

适配器

package com.example.pagetabswipe;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class SampleAdapter extends FragmentPagerAdapter {
    Context ctxt=null;
    public SampleAdapter(FragmentManager fm, Context ctxt) {
        super(fm);
        this.ctxt=ctxt;
        // TODO Auto-generated …
Run Code Online (Sandbox Code Playgroud)

android android-fragmentactivity android-pageradapter

5
推荐指数
1
解决办法
2216
查看次数