2016-05-01 4 views

Antwort

1

Es ist einfach, Sie können dieses Beispiel verwenden, um die Größe des Bildschirms zu erhalten und dann die ActionBar bei Bedarf ausblenden.

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 
double x = Math.pow(dm.widthPixels/dm.xdpi,2); 
double y = Math.pow(dm.heightPixels/dm.ydpi,2); 
double screenInches = Math.sqrt(x+y); 

es wird Ihnen die Größe des Bildschirms in Zoll erhalten. und wenn Sie es in Pixeln wollen, dann können Sie verwenden

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

Hoffe, es hilft

0

Wahrscheinlich Ihre beste Ansatz ist, eine Kopie Ihrer style.xml der res machen/Werte auf die res/Werte- mdpi (oder Ihre gewünschte Layoutgröße) und ändern Sie das AppTheme zu Ihrem Stil + .NoActionBar.

Beispiel:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
0

Wenn Sie überprüfen möchten, welche das Layout geladen Sie Tags zu Ihrem Layout beispielsweise hinzufügen:

LDPI Layout:

<RelativeLayout 
    android:width="match_parent" 
    android:height="match_parent" 
    android:id="@+id/mainlayout" 
    android:tag="ldpi" > 

MDPI Layout:

<RelativeLayout 
    android:width="match_parent"   
    android:height="match_parent" 
    android:id="@+id/mainlayout" 
    android:tag="mdpi" > 

und so weiter.

In Ihrem Programmcode können Sie nun überprüfen, welchem ​​Tag das Layout hat:

RelativeLayout layout = (RelativeLayout) findViewById(R.id.mainlayout); 
String tag = layout.getTag(); 
if(tag != null && tag.equals("ldpi")) { 
    // Ldpi Layout loaded, hide actionbar 

} 
1

eine Reihe von Optionen in dieser Situation ist.

Erstens, sind Sie sicher, dass Ihre Anwendung ohne eine Aktionsleiste verwendbar ist? z.B. Warum benötigen Sie eine Aktionsleiste auf großen Geräten, wenn Sie auf kleineren Geräten darauf verzichten können?

Verwenden Sie das Android Toolbar (Welche empfehle ich)? Wenn dies der Fall ist, können Sie die Symbolleiste in Ihrem Layout nicht für den kleineren Bildschirm in Ihren XML-Layout-Dateien verwenden. z.B. Fügen Sie die Symbolleiste in das Verzeichnis layout-large ein und schließen Sie sie von layout-small aus. Wenn Sie dann die Ansichten in Ihrer Aktivität/Ihrem Fragment binden, behandeln Sie den Fall, in dem die Symbolleistenansicht nicht gefunden wird.

Toolbar toolbar = (Toolbar)findViewById(R.id.myToolbar); 
if(toolbar != null) { 
    //set up my toolbar here which might include 
    setSupportActionBar(toolbar); 
} 

Eine weitere Option ist die Verwendung mehrerer Stile für Bildschirme unterschiedlicher Größe. Wo für den großen Bildschirm ist Ihr Stil Theme.AppCompat.Light.DarkActionBar und für Ihren kleinen Bildschirm seines Theme.AppCompat.Light.NoActionBar

0

Verwenden DisplayMetrics

public void setAppInvisible() { 
     actionBar.setVisibility(View.INVISIBLE); 
     // Or actionBar.hide(); 

    } 

DisplayMetrics dm = new DisplayMetrics(); 
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); 
int screenWidth = dm.widthPixels; 

if(screenWidth < 500){ 
    setAppInvisible(); 
}