Ich bitte um etwas Nachsicht, ich fange gerade mit den Android SDK-Tutorials an und versuche etwas aus Interesse, das nicht im Tutorial selbst enthalten ist, aber ich hoffe, es wäre einfach.
Ich versuche, ein TextView
-Element über Code horizontal und vertikal zu zentrieren (ich kann es in XML problemlos ausführen). Ich habe einige Beispiele dafür gesehen, wie man das macht, wenn das übergeordnete Objekt eine Tabelle oder ein anderes Objekt ist, aber ich hoffe, dass dies für mich leichter zu erfassen ist. (S. Fühlen Sie sich frei, meine Terminologie zu korrigieren).
Hier ist der Beispielcode aus dem Tutorial/meinem Arbeitsmodell:
package com.example.myfirstapp;
import Android.os.Bundle;
import Android.app.Activity;
import Android.content.Intent;
import Android.view.ViewGroup.LayoutParams;
import Android.widget.TextView;
public class DisplayMessageActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
textView.setGravity(View.TEXT_ALIGNMENT_GRAVITY);
setContentView(textView);
}
}
Ich habe es geschafft, die setGravity
-Methode zu finden, und ich habe versucht, die setLayoutParams
-Methode zu verwenden, bin mir jedoch nicht sicher, in welchem Bereich sie ausgeführt werden soll, da ich nicht finden kann, was ich importieren soll, um den WRAP_CONTENT
zu erhalten. Konstante zu lösen. Nach meinem Verständnis sind Zentrierung und Inhaltsverpackung + Schwerkraft zwei getrennte Dinge. Ich hätte gerne ein Beispiel dafür, wie man beides in diesem Fall macht und vielleicht, wie/wo ich die Antwort in der API-Dokumentation gefunden hätte.
yourTextView.setGravity(Gravity.CENTER);
Für dynamisch zentrieren
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
das wird sicher funktionieren ..
RelativeLayout layout = new RelativeLayout(R.layout.your_layour);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
params.addRule(LinearLayout.CENTER_IN_PARENT);
textView.setLayoutParams(params);
textView.setGravity(Gravity.CENTER);
layout.addView(textView);
setcontentView(layout);
TextView text = new TextView(this);
text.setGravity(Gravity.CENTER);
und
text.setGravity(Gravity.TOP);
und
text.setGravity(Gravity.BOTTOM);
und
text.setGravity(Gravity.LEFT);
und
text.setGravity(Gravity.RIGHT);
und
text.setGravity(Gravity.CENTER_VERTICAL);
und
text.setGravity(Gravity.CENTER_HORIZONTAL);
Und mehr auch verfügbar
Fügen Sie den folgenden Code hinzu, um die Layoutparameter auf die TextView anzuwenden
LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(LinearLayout.CENTER_IN_PARENT);
textView.setLayoutParams(lp);
Sie können Folgendes verwenden, um TextView
Text in Kotlin programmatisch zu zentrieren:
textview.gravity = Gravity.CENTER
wenn Ihre Textgröße klein ist, sollten Sie die Breite Ihrer Textansicht auf "fill_parent" setzen. Danach können Sie Ihre TextView-Schwerkraft auf Mitte einstellen:
TextView textView = new TextView(this);
textView.setText(message);
textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
textView.setGravity(Gravity.CENTER);
probiere diese Methode
public void centerTextView(LinearLayout linearLayout) {
TextView textView = new TextView(context);
textView.setText(context.getString(R.string.no_records));
textView.setTypeface(Typeface.DEFAULT_BOLD);
textView.setGravity(Gravity.CENTER);
textView.setTextSize(18.0f);
textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
linearLayout.addView(textView);
}