3

我正在使用一个viewpager,它加载一些布局并在滑动时做一些事情。我希望能够在活动更改方向时,寻呼机将布局更改为特定方向,而无需再次加载数据。这可能吗 ??

我知道,为了避免一遍又一遍地调用 onCreate 方法,您必须在清单中指定以下行,然后使用 onConfigurationChanged:

android:configChanges="方向"

但是这样做布局不会根据方向加载正确的布局(所以如果是横向加载横向布局),而是保持加载的布局并调整其大小。

class ViewPagerAdapter extends PagerAdapter {


    public int getCount() {
        return 4;
    }

    public Object instantiateItem(View collection, int position) {
        LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        int resId = 0;
        switch (position) {
        case Constants.LAYOUT_FEEDBACK:
            resId = R.layout.activity_feedback; 
            view = inflater.inflate(resId, null);
            ((ViewPager)collection).addView(view, 0);

            btnSend = (Button)view.findViewById(R.id.btnSend);
            etFeedback = (EditText)view.findViewById(R.id.etFeedback);
            etEmail = (EditText)view.findViewById(R.id.etMail);

            sendFeedback(btnSend);

            break;
        case Constants.LAYOUT_HOME:
            resId = R.layout.activity_home;

            view = inflater.inflate(resId, null);

            ((ViewPager)collection).addView(view, 0);

            btnCamera = (ImageButton)view.findViewById(R.id.btnCamera);
            btnPoo = (ImageButton)view.findViewById(R.id.btnPoo);
            imgPopular = (Button)view.findViewById(R.id.btnPopular);
            imgRecent = (Button)view.findViewById(R.id.btnRecent);
            imgNearby = (Button)view.findViewById(R.id.btnNearby);

            btnEdit = (ImageButton)view.findViewById(R.id.btnEdit);
            btnFeedback = (ImageButton)view.findViewById(R.id.btnFeedback);

            incSearch = getLayoutInflater().inflate(R.layout.include_search, null);
            incNoInternet = view.findViewById(R.id.include_no_internet);
            incNoInternet.setVisibility(View.INVISIBLE);
            btnCancel = (Button)incSearch.findViewById(R.id.btnCancel);
            imgX = (ImageView)incSearch.findViewById(R.id.imgX);
            etKeywords = (EditText)incSearch.findViewById(R.id.etText);

            btnRetry = (Button)incNoInternet.findViewById(R.id.btnTryAgain);

            pooAdapter = new PooAdapter(poos);
            lvPoo = (ListView)view.findViewById(R.id.lvPoo);
            lvPoo.addHeaderView(incSearch);
            lvPoo.setCacheColorHint(Color.TRANSPARENT);
            lvPoo.setAdapter(pooAdapter);
4

0 回答 0