如何实现QuickReturnList在活动? [英] How to implement QuickReturnList in an Activity?

查看:163
本文介绍了如何实现QuickReturnList在活动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何实现的标签,使用活动为每个标签。我发现本教程但与片段实施。 这里是显示正是我想要做的视频。

下面是我一直在努力做:

DefaultActivity.java

  @覆盖
保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);        LayoutInflater吹气=(LayoutInflater)DefaultActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        鉴于= inflater.inflate(R.layout.fragment,NULL);
        mHeader = inflater.inflate(R.layout.header,NULL);
        mQuickReturnView =(TextView中)view.findViewById(R.id.sticky);
        mPlaceHolder = mHeader.findViewById(R.id.placeholder);        mListView =(QuickReturnListView)getListView(); //在这里展示类转换异常        mQuickReturnView.setText(默认);
        mListView.addHeaderView(mHeader);        String []数组=新的String [] {机器人,机器人,机器人,
                机器人,机器人,机器人,机器人,机器人,
                机器人,机器人,机器人,机器人,机器人,
                机器人,机器人,机器人};        ArrayAdapter<串GT;适配器=新ArrayAdapter<串GT;(这一点,
                android.R.layout.simple_list_item_1,数组);
        mListView.getViewTreeObserver()。addOnGlobalLayoutListener(
                新ViewTreeObserver.OnGlobalLayoutListener(){
                    @覆盖
                    公共无效onGlobalLayout(){
                        mQuickReturnHeight = mQuickReturnView.getHeight();
                        mListView.computeScrollY();
                        mCachedVerticalScrollRange = mListView.getListHeight();
                    }
                });        mListView.setOnScrollListener(新OnScrollListener(){
            @燮pressLint(NewApi)
            @覆盖
            公共无效onScroll(AbsListView观点,诠释firstVisibleItem,
                    INT visibleItemCount,诠释totalItemCount){                mScrollY = 0;
                INT translationY = 0;                如果(mListView.scrollYIsComputed()){
                    mScrollY = mListView.getComputedScrollY();
                }                INT rawY = mPlaceHolder.getTop()
                         - Math.min(
                                mCachedVerticalScrollRange
                                         - mListView.getHeight(),mScrollY);                开关(mState){
                案例STATE_OFFSCREEN:
                    如果(rawY< = mMinRawY){
                        mMinRawY = rawY;
                    }其他{
                        mState = STATE_RETURNING;
                    }
                    translationY = rawY;
                    打破;                案例STATE_ONSCREEN:
                    如果(rawY< -mQuickReturnHeight){
                        mState = STATE_OFFSCREEN;
                        mMinRawY = rawY;
                    }
                    translationY = rawY;
                    打破;                案例STATE_RETURNING:
                    translationY =(rawY - mMinRawY) - mQuickReturnHeight;
                    如果(translationY大于0){
                        translationY = 0;
                        mMinRawY = rawY - mQuickReturnHeight;
                    }                    如果(rawY大于0){
                        mState = STATE_ONSCREEN;
                        translationY = rawY;
                    }                    如果(translationY< -mQuickReturnHeight){
                        mState = STATE_OFFSCREEN;
                        mMinRawY = rawY;
                    }
                    打破;
                }                / **这可如果构建低于蜂窝使用** /
                如果(Build.VERSION.SDK_INT< = Build.VERSION_ codeS.HONEYCOMB){
                    阿尼姆=新TranslateAnimation(0,0,translationY,
                            translationY);
                    anim.setFillAfter(真);
                    anim.setDuration(0);
                    mQuickReturnView.startAnimation(阿尼姆);
                }其他{
                    mQuickReturnView.setTranslationY(translationY);
                }            }            @覆盖
            公共无效onScrollStateChanged(AbsListView观点,诠释scrollState){
            }
        });
        rlMain =(RelativeLayout的)findViewById(R.id.main);
        rlMain.addView(视图);
        的setContentView(R.layout.activity_main);    }

现在它显示误差 mListView =(QuickReturnListView)getListView();

  02-13 21:23:03.389:E / AndroidRuntime(26896):了java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.quickreturnlistwithactivity/com.example.quickreturnlistwithactivity.QuickReturnActivity}: java.lang.ClassCastException:android.widget.ListView不能转换为com.example.quickreturnlistwithactivity.QuickReturnListView
02-13 21:23:03.389:E / AndroidRuntime(26896):java.lang.ClassCastException:致android.widget.ListView不能转换为com.example.quickreturnlistwithactivity.QuickReturnListView
02-13 21:23:03.389:E / AndroidRuntime(26896):在com.example.quickreturnlistwithactivity.QuickReturnActivity.onCreate(QuickReturnActivity.java:67)


解决方案

您确定您有标记的样子:

 < your_package_path.QuickReturnListView

How to implement tabs, using activity for each tab. I found this tutorial but it implemented with Fragments. Here is a video that show exactly what I want to do.

Here what I been trying to do:

DefaultActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LayoutInflater inflater  = (LayoutInflater) DefaultActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(R.layout.fragment, null);
        mHeader = inflater.inflate(R.layout.header, null);
        mQuickReturnView = (TextView) view.findViewById(R.id.sticky);
        mPlaceHolder = mHeader.findViewById(R.id.placeholder);



        mListView = (QuickReturnListView) getListView(); //showing class cast exception here

        mQuickReturnView.setText("Default");
        mListView.addHeaderView(mHeader);

        String[] array = new String[] { "Android", "Android", "Android",
                "Android", "Android", "Android", "Android", "Android",
                "Android", "Android", "Android", "Android", "Android",
                "Android", "Android", "Android" };

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,array);


        mListView.getViewTreeObserver().addOnGlobalLayoutListener(
                new ViewTreeObserver.OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() {
                        mQuickReturnHeight = mQuickReturnView.getHeight();
                        mListView.computeScrollY();
                        mCachedVerticalScrollRange = mListView.getListHeight();
                    }
                });

        mListView.setOnScrollListener(new OnScrollListener() {
            @SuppressLint("NewApi")
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,
                    int visibleItemCount, int totalItemCount) {

                mScrollY = 0;
                int translationY = 0;

                if (mListView.scrollYIsComputed()) {
                    mScrollY = mListView.getComputedScrollY();
                }

                int rawY = mPlaceHolder.getTop()
                        - Math.min(
                                mCachedVerticalScrollRange
                                        - mListView.getHeight(), mScrollY);

                switch (mState) {
                case STATE_OFFSCREEN:
                    if (rawY <= mMinRawY) {
                        mMinRawY = rawY;
                    } else {
                        mState = STATE_RETURNING;
                    }
                    translationY = rawY;
                    break;

                case STATE_ONSCREEN:
                    if (rawY < -mQuickReturnHeight) {
                        mState = STATE_OFFSCREEN;
                        mMinRawY = rawY;
                    }
                    translationY = rawY;
                    break;

                case STATE_RETURNING:
                    translationY = (rawY - mMinRawY) - mQuickReturnHeight;
                    if (translationY > 0) {
                        translationY = 0;
                        mMinRawY = rawY - mQuickReturnHeight;
                    }

                    if (rawY > 0) {
                        mState = STATE_ONSCREEN;
                        translationY = rawY;
                    }

                    if (translationY < -mQuickReturnHeight) {
                        mState = STATE_OFFSCREEN;
                        mMinRawY = rawY;
                    }
                    break;
                }

                /** this can be used if the build is below honeycomb **/
                if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB) {
                    anim = new TranslateAnimation(0, 0, translationY,
                            translationY);
                    anim.setFillAfter(true);
                    anim.setDuration(0);
                    mQuickReturnView.startAnimation(anim);
                } else {
                    mQuickReturnView.setTranslationY(translationY);
                }

            }

            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
            }
        });
        rlMain = (RelativeLayout)findViewById(R.id.main);
        rlMain.addView(view);
        setContentView(R.layout.activity_main);

    }

Now it showing error in mListView = (QuickReturnListView) getListView();

02-13 21:23:03.389: E/AndroidRuntime(26896): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.quickreturnlistwithactivity/com.example.quickreturnlistwithactivity.QuickReturnActivity}: java.lang.ClassCastException: android.widget.ListView cannot be cast to com.example.quickreturnlistwithactivity.QuickReturnListView
02-13 21:23:03.389: E/AndroidRuntime(26896): Caused by: java.lang.ClassCastException: android.widget.ListView cannot be cast to com.example.quickreturnlistwithactivity.QuickReturnListView
02-13 21:23:03.389: E/AndroidRuntime(26896):    at com.example.quickreturnlistwithactivity.QuickReturnActivity.onCreate(QuickReturnActivity.java:67)

解决方案

Are you sure that you have the markup looks like:

<your_package_path.QuickReturnListView

这篇关于如何实现QuickReturnList在活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆