1

私のアプリケーションにタブレットモードを含めることについて、いくつかの助けを見つけようとしています。4つのフラグメントを持つViewPagerを使用しています。私がやりたいのは、7インチディスプレイと10インチディスプレイ用のタブレットモードです。大きなビュー ページャーではなく、10 インチの 4 平方レイアウトでフラグメントを表示したいと考えています。7 インチでは 2 平方レイアウトを表示したいと考えています。これを行う方法の良い例を見つけようとしています。これが私の以下のviewpagerソースコードとフラグメントの例です。このソースは、ライブラリ ActionBarSherlock および ViewPagerIndicator を使用しています。

主な活動

  public class MainActivity extends SherlockFragmentActivity {
private ViewPager mPager;
private TitlePageIndicator mIndicator;
private MainPagerAdapter mAdapter;
private List<Fragment> mFragments;

public static final String PREFS_NAME = "MyPrefsFile1";
public CheckBox dontShowAgain;

private static final String FRAGMENT1 = EnlightenFragment.class.getName();
private static final String FRAGMENT2 = CommunityFragment.class.getName();
private static final String FRAGMENT3 = SupportFragment.class.getName();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.a_main);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

    // add fragments
    mFragments = new ArrayList<Fragment>();
    mFragments.add(Fragment.instantiate(this, FRAGMENT1));
    mFragments.add(Fragment.instantiate(this, FRAGMENT2));
    mFragments.add(Fragment.instantiate(this, FRAGMENT3));

    // adapter
    mAdapter = new MainPagerAdapter(getSupportFragmentManager(), mFragments);

    // pager
    mPager = (ViewPager) findViewById(R.id.view_pager);
    mPager.setOffscreenPageLimit(4);
    mPager.setAdapter(mAdapter);

    // indicator
    mIndicator = (TitlePageIndicator) findViewById(R.id.title_indicator);
    mIndicator.setViewPager(mPager);
        }
   }

MainPagerAdapter

   public class MainPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> mFragments;
private String[] titles = new String[] {"System", "Community", "Support" };
private int mCount = titles.length;

public MainPagerAdapter(FragmentManager fm, List<Fragment> f) {
    super(fm);
    mFragments = f;
}

@Override
public Fragment getItem(int position) {
    return mFragments.get(position);
}

@Override
public int getCount() {
    return mCount;
}
@Override
public CharSequence getPageTitle(int position) {
    return titles[position];
}
  }

サポートフラグメント

   public class SupportFragment extends SherlockFragment {
WebView web;
static ProgressBar progressBar;
Context context;

@Override
public View onCreateView(LayoutInflater inf, ViewGroup grp, Bundle icicle) {
    View v = inf.inflate(R.layout.activity_main, grp, false);
    //mList = (ListView) v.findViewById(R.id.listView1);
    web = (WebView) v.findViewById(R.id.webView);
    progressBar = (ProgressBar) v.findViewById(R.id.progressBar1);
    setHasOptionsMenu(true);
    return v;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    if (savedInstanceState != null)
        ((WebView) getSherlockActivity().findViewById(R.id.webView))
                .restoreState(savedInstanceState);

    web.setWebViewClient(new SpecialWebView(progressBar));
    web.setWebChromeClient(new SpecialWebChromeClient(progressBar));
    // Progress Bar - End

    web.setWebViewClient(new myWebClient());
    //progressBar = (ProgressBar) getSherlockActivity().findViewById(R.id.progressBar1);
    web.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress) {
            progressBar.setProgress(progress);
        }
    });


    WebSettings websettings = web.getSettings();
    websettings.setBuiltInZoomControls(false);
    web.setBackgroundColor(Color.parseColor("#f2f2f2"));
    // websettings.setUseWideViewPort(position == 0 ? true : false);
    websettings.setUseWideViewPort(true);
    websettings.setJavaScriptEnabled(true);
    websettings.setAllowFileAccess(true);
    websettings.setDomStorageEnabled(true);
    websettings.setLoadWithOverviewMode(true);
    websettings.setSavePassword(true);
    websettings.setBuiltInZoomControls(true);
    web.loadUrl(url);

    setHasOptionsMenu(true);


}
4

0 に答える 0