0

私のアプリには Gridview があります。マニフェストでダイアログとしてテーマ化されたアクティビティを開くために使用される Gridview セルをクリックします。これはうまくいきました。

アプリをさらに改良するために、ビューページャーをアクティビティに追加したいと考えました。だから私はに変更SomeClass extends ActivityしましたSomeClass extends Fragmentextends FragmentActivityこれを保持するコンテナー ( which ) を作成し、Fragmentこのコンテナーをマニフェストでダイアログとしてテーマにしました。

<activity android:name="com.packagename.SomeContainer"  android:theme="@style/Theme.Sherlock.Light.Dialog" />

これはフラグメントをダイアログとして表示しません。私が望まないフラグメントのフルスクリーンを表示し、アクティビティのときに行ったコンテンツに基づいてサイズを変更しません。

コンテナ (fragmentactivity) またはフラグメントを、コンテンツに応じてサイズ変更し、全画面表示しないダイアログとして表示するにはどうすればよいですか?

SomeContainer.java

public class SomeContainer extends SherlockFragmentActivity {

    private SomeAdapter mAdapter;
    private ViewPager mPager;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        overridePendingTransition(R.anim.pull_in_from_left, R.anim.hold);
        setContentView(R.layout.layout_events);

        getWindow().setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);


        Intent intent = getIntent();
        String date_string = intent.getStringExtra("date_string");


        mAdapter = new SomeAdapter(getSupportFragmentManager(), date_string);

        mPager = (ViewPager) findViewById(R.id.eventspager);
        mPager.setAdapter(mAdapter);
    }

    @Override
    protected void onPause() {
        overridePendingTransition(R.anim.hold, R.anim.pull_out_to_left);
        super.onPause();
    }


    public static class SomeAdapter extends FragmentPagerAdapter {
        String date;
        FragmentManager fm;
        public SomeAdapter(FragmentManager fm, String date) {
            super(fm);
            this.date = date;
            this.fm = fm;
        }

        @Override
        public int getCount() {
            return 3;
        }

        @Override
        public Fragment getItem(int position) {
            switch (position) {
            case 0:
                return SomeFragment.newInstance(date);
            case 1:
                return SomeFragment1.newInstance(date);
            case 2:
                return SomeFragment2.newInstance(date);

            default:
                return null;
            }
        }
    }
}

SomeFragment.java

public class SomeFragment extends DialogFragment  {

    String date_string;

    public static SomeFragment newInstance(String date) {
        SomeFragment someFragment = new SomeFragment();

        Bundle args = new Bundle();
        args.putString("date", date);
        someFragment.setArguments(args);

        returnsomeFragment;
    }

     /** Called when the activity is first created. */

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View v =  inflater.inflate(R.layout.events, container, false);

        //getActivity().getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

        date_string = getArguments().getString("date");

        //do something

        return v;
    }
 }
4

0 に答える 0