0

Ich möchte die Position eines Elements (editText) in meiner Benutzeroberfläche ändern, wenn der Benutzer es tippt. Die Positionierung sollte ~ 20 dp unter der actionBar sein, egal welche Bildschirmgröße oder DPI das Gerät benutzt.Ändern Sie dynamisch editTexts Position basierend auf dem Bildschirm Größe/DPI

Wie erreiche ich dies mit nur (Java) -Code? Bitte versuchen Sie eine genauere Antwort zu geben. Ich habe andere ähnliche Beispiele gesehen, aber keine, die ein genaues Szenario erklären? Ich dachte an einen Anfang wie der Code unten? Dann was ?:

DisplayMetrics dm = new DisplayMetrics(); 
    mSearchField = (EditText)v.findViewById (R.id.something); 

    getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); 
      int [] loc = new int[2]; 
      mSearchField.getLocationOnScreen(loc); 
      int distance = dm.heightPixels - loc[1]; 
+0

Können Sie Ihr XML-Layout posten oder erklären, wie Ihre Ansichten auf dem Bildschirm eingerichtet sind? Vielleicht brauchen Sie nicht die Display-Abmessungen, um das zu erreichen, wonach Sie suchen –

Antwort

0

Holen Sie sich die Display-Höhe und Breite mit DisplayMetrics.

DisplayMetrics displayMetrics = new DisplayMetrics(); 
     mContext.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 
     int height = displayMetrics.heightPixels; 
     int width = displayMetrics.widthPixels; 
     Log.e("width",width+""+height); 
Verwandte Themen