2016-04-20 58 views
1

我有一個包含10行的列表視圖。每行都有一個textview,當我嘗試在textview本身上添加一個fade_out動畫時,動畫僅發生在listviews的最後一個項目上。我想要在所有的小孩textview上做。將動畫添加到textview的子視圖中的rowview

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 


     LayoutInflater in=getLayoutInflater(); 
     View row=in.inflate(R.layout.row_main, parent,false); 



     titr=(TextView) row.findViewById(R.id.row_main_titr); 
     matn=(TextView) row.findViewById(R.id.row_main_content); 
     TextView extra=(TextView) row.findViewById(R.id.row_main_extra); 
     ImageView image=(ImageView) row.findViewById(R.id.row_main_image); 


     titr.setHorizontallyScrolling(true); 
     //titr.setMovementMethod(new ScrollingMovementMethod()); 
     //titr.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET); 



     ViewGroup.LayoutParams paramsi = image.getLayoutParams(); 
     paramsi.height= (W/2)-10; 
     //image.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     image.setLayoutParams(paramsi); 


     image.setImageBitmap(img[position]); 

     titr.setTextSize((float)W/35); 

     titr.setText(name[position]); 
     matn.setText(Html.fromHtml(content[position]).toString().replace("•", "\n")); 
     extra.setText("نظرها: "+commentcount[position]); 
     titr.setTypeface(yekan); 

     matn.setTypeface(yekan); 
     extra.setTypeface(MainActivity.koodak); 


     return (row); 
    } 





} 

,在這裏我想補充的動畫

// ShakeDetector initialization 
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 


    mShakeDetector = new ShakeDetector(new OnShakeListener() { 

     @Override 
     public void onShake() { 

      final Animation out = AnimationUtils.loadAnimation(getBaseContext(), android.R.anim.fade_out); 
      out.setDuration(300); 
      out.setFillAfter(true); 

      // TODO Auto-generated method stub 
      Toast.makeText(getApplicationContext(), "tekun bede", Toast.LENGTH_LONG).show(); 
     } 
    }); 

回答

0

首先關閉所有我想說,在一個列表視圖中添加動畫可以是一個壞主意,因爲它們是汽車無回收。這意味着你正在上下滾動動畫將繼續發生。看着你的代碼,我會認爲問題在於你正在使用mShakeDetector作爲類對象。問題可能是這導致以前的動畫被覆蓋。我會建議在getView方法中創建一個本地的。

像這樣,但你也需要爲其他對象做。

傳感器mSensorManager =(SensorManager)getSystemService(Context.SENSOR_SERVICE);

讓我知道它是怎麼回事!

+0

其對我來說非常重要在另一個類中使用senseo –

+0

否適配器類中,但爲每個視圖創建一個新的對象。 – fsebek

相關問題