2013-03-12 8 views
5

Ho un'attività con un tema di dialogo (Theme.Holo.DialogWhenLarge). Sembra troppo stretto e mi piacerebbe che riempisse una percentuale maggiore dello schermo. Sto cercando di farlo ignorando gli attributi windowMinWidthMinor e windowMinWidthMajor.Come impostare la larghezza percentuale per un'attività a tema di dialogo

Il tema utilizzato da mia attività si presenta così ...

<style name="MyTheme" parent="@android:style/Theme.Holo.DialogWhenLarge"> 
    <item name="android:windowMinWidthMajor">90%</item> 
    <item name="android:windowMinWidthMinor">90%</item> 
</style> 

Tuttavia, sembra che la windowMinWidthMajor e windowMinWidthMinor non hanno alcun effetto. Qualcuno può spiegare cosa sto facendo male?

+0

Questo funziona per me se uso 'parent =" android: style/Theme.Holo.Light.Dialog "', su SDK min 23 –

risposta

-1

È impossibile impostare le percentuali per Android, MA c'è un modo per aggirare. Quello che ho fatto è ottenere la larghezza dello schermo e moltiplicarla per la percentuale che voglio che la mia vista o articolo sia (esempio: se voglio qualcosa che riempia il 40% della larghezza se sarebbe Screen-Width * 0.4)

+2

I documenti per questo attributo dicono diversamente: "Può essere un valore frazionario, che è un numero in virgola mobile aggiunto con% o% p, ad esempio "14,5%". " (http://developer.android.com/reference/android/R.attr.html#windowMinWidthMajor – Project

3
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //Some code here 
     setWindowHeight(90); 
    } 
    /** 
    * Set percentage width height 
    * @param percent percent from current size. From 0 to 100. 
    */ 
    private void setWindowHeight(int percent){ 
     DisplayMetrics metrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(metrics); 
     int screenHeight = metrics.heightPixels; 
     WindowManager.LayoutParams params = getWindow().getAttributes(); 
     params.height = (int)(screenHeight*percent/100); 
     this.getWindow().setAttributes(params); 
    } 
Problemi correlati