【问题标题】:Rendering Views to View Pager - Optimized Way将视图渲染到 View Pager - 优化方式
【发布时间】:2013-03-31 12:08:53
【问题描述】:

在我的应用程序中,我使用以下方法将视图呈现/生成到视图寻呼机。是的,它工作正常,符合预期。

注意:- 但在这里我看到,这种方法必须在 Android 资源(与设备相关联)方面付出很多努力。我想找出任何优化的方法来做同样的事情。有吗?建议我还是上面的好?

class MyActivity extends Activity{
        @Override
        public void onCreate(Bundle savedInstanceState) {

             super.onCreate(savedInstanceState);
            setContentView(R.layout.layoutView);

            LinearLayout pageFirst = getPageFisrt(context);
            LinearLayout pageSecond = getPageSecond(context);
            LinearLayout pageThird = getPageThird(context);
            LinearLayout pageFourth = getPageFourth(context);
            .........
            .........

            pageArrayList = new ArrayList<LinearLayout>();
            pageArrayList.clear();

            pageArrayList.add(pageFirst);
            pageArrayList.add(pageSecond);
            pageArrayList.add(pageThird);
            pageArrayList.add(pageFourth);
            ...........
            ..........

            viewPager.setAdapter(new MatchDetailsPagerAdapter(
                    context, pageArrayList));

            indicator.setViewPager(viewPagerMatchDetailMain);

        }

    }

对于每个页面,我都从资源中扩充了布局, 喜欢

   private LinearLayout getPageFisrt(Context context) {
        // TODO Auto-generated method stub
        LayoutInflater inflater = LayoutInflater.from(context);
        LinearLayout linearLayoutFirstPage = (LinearLayout) inflater.inflate(
                R.layout.pager_first_large_views, null);

       // performing action on the page child layout.

        return linearLayoutFirstPage;
    }

期待更好的方法来做同样的事情

【问题讨论】:

    标签: android android-layout optimization android-viewpager android-inflate


    【解决方案1】:

    我认为,使用更优化的FragmentPagerAdapter 的片段,然后在onCreate 方法中生成所有布局。

    public class FragmentAdapter extends FragmentPagerAdapter
        implements IconPagerAdapter
    {    
        private int count = 2;
    
        public InstallFragmentAdapter(FragmentManager fm) {
            super(fm);
        }
    
        @Override
        public Fragment getItem(int position) {     
            switch (position) {
                case 0:
                    return Fragment0.newInstance();
                case 1:
                    return Fragment1.newInstance();
                case 2:
                    return Fragment2.newInstance();
                default:
                    break;
            }
            return null;
        }
    
        @Override
        public int getCount() {
            return count;
        }
    
        @Override
        public CharSequence getPageTitle(int position) {
            return "";
        }
    
        @Override
        public int getIconResId(int position) {
            return 0;
        }
    }
    

    【讨论】:

    • 你也可以使用 FragmentStatePagerAdapter 来释放隐藏页面上的内存,除了左边和右边
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多