繁体   English   中英

无法解析方法 findViewByID(int) 片段 java

[英]Cannot resolve method findViewByID(int) fragment java

错误:更新

尝试使用GetView.findViewById错误无法解析方法GetView尝试仅使用findViewById错误无法解析findViewById(int)

 package com.example.user.myapplication.Tabs; import android.animation.Animator; import android.animation.ValueAnimator; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.LinearLayout; import com.example.user.myapplication.R; public class Hotel extends Fragment { LinearLayout mLinearLayout; LinearLayout mLinearLayoutHeader; ValueAnimator mAnimator; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v =inflater.inflate(R.layout.hotel_frag,container,false); return v; mLinearLayout = (LinearLayout) v.findViewById(R.id.expandable); //mLinearLayout.setVisibility(View.GONE); mLinearLayoutHeader = (LinearLayout) v.findViewById(R.id.header); //Add onPreDrawListener mLinearLayout.getViewTreeObserver().addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { mLinearLayout.getViewTreeObserver().removeOnPreDrawListener(this); mLinearLayout.setVisibility(View.GONE); final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); mLinearLayout.measure(widthSpec, heightSpec); mAnimator = slideAnimator(0, mLinearLayout.getMeasuredHeight()); return true; } }); mLinearLayoutHeader.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mLinearLayout.getVisibility()==View.GONE){ expand(); }else{ collapse(); } } }); return v; } private void expand() { //set Visible mLinearLayout.setVisibility(View.VISIBLE); /* Remove and used in preDrawListener final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); mLinearLayout.measure(widthSpec, heightSpec); mAnimator = slideAnimator(0, mLinearLayout.getMeasuredHeight()); */ mAnimator.start(); } private void collapse() { int finalHeight = mLinearLayout.getHeight(); ValueAnimator mAnimator = slideAnimator(finalHeight, 0); mAnimator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationEnd(Animator animator) { //Height=0, but it set visibility to GONE mLinearLayout.setVisibility(View.GONE); } @Override public void onAnimationStart(Animator animator) { } @Override public void onAnimationCancel(Animator animator) { } @Override public void onAnimationRepeat(Animator animator) { } }); mAnimator.start(); } private ValueAnimator slideAnimator(int start, int end) { ValueAnimator animator = ValueAnimator.ofInt(start, end); animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { //Update Height int value = (Integer) valueAnimator.getAnimatedValue(); ViewGroup.LayoutParams layoutParams = mLinearLayout.getLayoutParams(); layoutParams.height = value; mLinearLayout.setLayoutParams(layoutParams); } }); return animator; } }

请在 oncreate 方法的末尾给出 return 语句。

    @Override
     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            View v =inflater.inflate(R.layout.hotel_frag,container,false);

----------------- your code -----------------

            return v;
}

尝试这个

mLinearLayout = (LinearLayout) v.findViewById(R.id.expandable);

并且 'return v' 应该是 onCreateView 方法中的最后一行

你的方法应该是这样的

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v =inflater.inflate(R.layout.hotel_frag,container,false);

   mLinearLayout = (LinearLayout) v.findViewById(R.id.expandable);
    //mLinearLayout.setVisibility(View.GONE);
    mLinearLayoutHeader = (LinearLayout) v.findViewById(R.id.header);

    //Add onPreDrawListener
    mLinearLayout.getViewTreeObserver().addOnPreDrawListener(
            new ViewTreeObserver.OnPreDrawListener() {

                @Override
                public boolean onPreDraw() {
                    mLinearLayout.getViewTreeObserver().removeOnPreDrawListener(this);
                    mLinearLayout.setVisibility(View.GONE);

                    final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
                    final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
                    mLinearLayout.measure(widthSpec, heightSpec);

                    mAnimator = slideAnimator(0, mLinearLayout.getMeasuredHeight());
                    return true;
                }
            });


    mLinearLayoutHeader.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mLinearLayout.getVisibility()==View.GONE){
                expand();
            }else{
                collapse();
            }
        }
    });

    return v;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM