0
フラグメントを使用しています。私はビューを追加すると非常に遅く動作します。 (Imageview、RelativeLayout vsvs)。 しかし、私のアプリケーションは一部のデバイスでうまく動作します。ロリポップのように。 どうすればこの問題を解決できますか?ロード中に断片化が非常に遅くなる
コード: `@Override パブリックビューonCreateView(LayoutInflaterのインフレータ、のViewGroupコンテナ、バンドルsavedInstanceState){
view = inflater.inflate(R.layout.words,container, false);
searchLayout=(RelativeLayout)view.findViewById(R.id.searchLayout);
boxLayout=(RelativeLayout)getActivity().findViewById(R.id.boxSearch);
mainlayout=(RelativeLayout)getActivity().findViewById(R.id.mainLayout);
mainsearch=(RelativeLayout)getActivity().findViewById(R.id.mainsearch);
horizontalScrollView=(HorizontalScrollView)view.findViewById(R.id.hS);
searchText=(EditText)getActivity().findViewById(R.id.searchText);
back=(ImageView)getActivity().findViewById(R.id.backbutton);
listplace=(RelativeLayout)view.findViewById(R.id.listplace);
frameLayout = (FrameLayout)view.findViewById(R.id.frame1);
frameLayout.setVisibility(View.GONE);
linearLayout=(RelativeLayout)view.findViewById(R.id.linear);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)listplace.getLayoutParams();
params.height= Resources.getSystem().getDisplayMetrics().widthPixels/2;
params.width=Resources.getSystem().getDisplayMetrics().widthPixels;
listplace.setLayoutParams(params);
w=listplace.getLayoutParams().width/3;
h=listplace.getLayoutParams().height/2;
preference= PreferenceManager.getDefaultSharedPreferences(getActivity());
int t=0;
int p=0;
while(t<=48)
{
addList(t);
t++;
}
searchLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
searchLayout.setOnTouchListener(new View.OnTouchListener() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
enterReveal((int)event.getX(),(int)event.getY());
}
return false;
}
});
return view;
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
void enterReveal(int x , int y) {
int finalRadius = Math.max(searchLayout.getWidth()+searchLayout.getWidth()/4, searchLayout.getHeight())/2;
Animator anim =ViewAnimationUtils.createCircularReveal(frameLayout, x, y, 0, finalRadius);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
frameLayout.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationEnd(Animator animation) {
frameLayout.setVisibility(View.GONE);
longClick=false;
mainsearch.setVisibility(View.VISIBLE);
mainlayout.setTranslationZ(-5.0f);
boxLayout.setClickable(true);
searchText.requestFocus();
InputMethodManager imgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imgr.showSoftInput(searchText, InputMethodManager.SHOW_IMPLICIT);
}
@Override
public void onAnimationCancel(Animator animation) {
longClick=false;
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
//anim.setDuration(450);
anim.start();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public void addList(int id)
{
ImageView img;
img=new ImageView(getContext());
img.setId(id);
img.setElevation(5.0f);
img.setImageResource(R.drawable.add);
img.setScaleType(ImageView.ScaleType.CENTER_CROP);
img.setAdjustViewBounds(true);
RelativeLayout.LayoutParams layoutParams=new RelativeLayout.LayoutParams(w, h);
layoutParams.setMargins(0-w/5,w/6,0,0);
if(id!=0)
{
layoutParams.setMargins(0-w/5,w/6,0,0);
layoutParams.addRule(RelativeLayout.RIGHT_OF,id-1);
}
img.setLayoutParams(layoutParams);
linearLayout.addView(img);
}
}
あなたは正しいですか?ありがとうございました –
幸せなコーディング:)答えを受け入れてください –