Der Rest der Antworten ist richtig, ich möchte noch mehr Erklärungen hinzufügen. Bei layout_gravity geht es darum, wie man die Ansicht in der übergeordneten Ansicht positioniert.
Sie müssen die Schwerkraft **nach dem Aufruf der Methode parentView.addView() ** einstellen. Wir können den Code sehen:
public void setLayoutParams(ViewGroup.LayoutParams params) {
if (params == null) {
throw new NullPointerException("Layout parameters cannot be null");
}
mLayoutParams = params;
resolveLayoutParams();
if (mParent instanceof ViewGroup) {
((ViewGroup) mParent).onSetLayoutParams(this, params);
}
requestLayout();
}
Und das Problem der Null-Zeiger ist, weil es nicht Aufruf addView vor getLayoutParams().
Die Anmerkung lautete bereits "Diese Methode kann null zurückgeben, wenn diese View nicht an eine übergeordnete ViewGroup angehängt ist oder {@link#setLayoutParams(Android.view.ViewGroup.LayoutParams)} nicht erfolgreich aufgerufen wurde. Wenn eine View an eine übergeordnete ViewGroup angehängt ist, darf diese Methode nicht null zurückgeben."