Ich verwende dimens.xml
Datei Werte für verschiedene Layoutgrößen zuweisen (d [email protected] , [email protected]).Assign match_parent als Dimen programmatisch
Beim Versuch, eine Dimen als wrap_Content
zu setzen oder match_parent
ich die folgende Art und Weise bin mit:
<resources>
<item name="match_parent" format="integer" type="dimen">-1</item>
<dimen name="popup_width">@dimen/match_parent</dimen>
</resources>
und es funktioniert perfekt, wenn diese Dimen im Layout-XML-Datei verwenden, aber wenn man versucht, es zu benutzen programmatisch wie wenn ein Popup-Fenster erklärt:
PopupWindow pw = new PopupWindow(layout, mContext.getResources().getDimension(R.dimen.popup_width),
ViewGroup.LayoutParams.MATCH_PARENT, true);
pw.showAtLocation(layout, Gravity.CENTER, 40, 0);
es überhaupt nicht funktioniert und es hält, wie wenn ich ein -1dp
Werte an sie übergeben (es führt direkte Referenzierung), so dass das Layout ist überhaupt ruiniert.
Also wie kann ich das Match_parent Dimen in der Datei dimens.xml
deklarieren, um es effizient in meinem Code zu verwenden? oder wie kann ich die aktuelle Dimenform auch effizient in meinem Code verwenden?
'match_parent' und' wrap_content' nicht Dimensionen sind. – CommonsWare
@CommonsWare also, gibt es keine Möglichkeit, irgendwelche von ihnen programmatisch als dynamische Dimension zu verwenden? !! oder noch etwas anderes? !! –
Meine erste Frage ist, warum müssen Sie 'match_parent' als eine Dimension programmgesteuert verwenden? Sie könnten die Breite des Geräts finden und diese Breite programmatisch auf die Breite Ihres 'PopupWindow' setzen. –