2016-08-01 26 views
0

Ich erstellte Klasse customTextView extent TextView und ich setzte textAlignment zu zentrieren. In onMeasure änderte ich die textview Breite.setGravity nach setMeasuredDimension ist keine Arbeit

Nach dieser Textview align Änderung nach links und ich this.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); aber zum Zentrum nicht

Antwort

0

Code unten in Ihrer Klasse hinzufügen, ändern.

Runnable runnable = new Runnable() { 
      public void run() { 
       view.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 
      } 
    }; 

Handler handler = new Handler(); 
handler.postDelayed(runnable,1000); 
0

gefällt das?

@Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec); 

     ImageView imageView = (ImageView)((Activity) context).findViewById(R.id.list_r); 
     int imageViewHeight = imageView.getMeasuredWidth(); 

     int parentWidth = MeasureSpec.getSize(widthMeasureSpec); 
     int parentHeight = MeasureSpec.getSize(heightMeasureSpec); 

     int final_width = parentWidth - 2*imageViewHeight; 
     this.setMeasuredDimension(final_width, parentHeight); 

     Runnable runnable = new Runnable() { 
      public void run() { 
       view.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 
      } 
     }; 

     Handler handler = new Handler(); 
     handler.postDelayed(runnable,1000); 
    } 
+0

Ja, aktualisieren Sie Textansicht Objekt statt Ansicht. –

+0

es funktioniert nur für die erste Seite, aber wenn Scroll-Seite, nicht arbeiten –

+0

Update-Handler Zeit 1000 bis 100 .. –