Saya mohon kelonggaran di sini, saya baru memulai dengan tutorial Android SDK dan saya mencoba sesuatu yang tidak menarik yang tidak ada dalam tutorial itu sendiri, tapi saya harap itu mudah.
Saya mencoba untuk memusatkan TextView
item melalui kode secara horizontal dan vertikal (saya bisa melakukannya dalam XML dengan baik). Saya telah melihat beberapa contoh bagaimana melakukan ini ketika induknya adalah tabel atau objek lain, tapi saya harap ini akan lebih mudah untuk saya pahami. (ps Jangan ragu untuk mengoreksi terminologi saya).
Berikut adalah contoh kode dari tutorial / model kerja saya:
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);
}
}
Saya telah berhasil menemukan setGravity
metode tersebut, dan saya telah mencoba mencoba-coba setLayoutParams
untuk itu, tetapi saya tidak yakin apa cakupannya karena saya tidak dapat menemukan apa yang harus saya impor untuk mendapatkan WRAP_CONTENT
konstanta untuk diselesaikan . Dari apa yang saya pahami, pemusatan dan content_wrapping + gravitasi adalah dua hal yang terpisah. Saya ingin contoh bagaimana melakukan keduanya dalam kasus ini dan mungkin bagaimana / di mana saya bisa menemukan jawabannya dalam dokumentasi API?
Jawaban:
yourTextView.setGravity(Gravity.CENTER);
sumber
android:textAlignment="gravity"
atribut disetel ke gravitasi. Jika tidak, textAlignment akan menimpa.yourTextView.setTextAlignment(View.TEXT_ALIGNMENT_GRAVITY);
Untuk pusat secara dinamis
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
sumber
ini pasti akan berhasil ..
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);
sumber
TextView text = new TextView(this); text.setGravity(Gravity.CENTER);
dan
text.setGravity(Gravity.TOP);
dan
text.setGravity(Gravity.BOTTOM);
dan
text.setGravity(Gravity.LEFT);
dan
text.setGravity(Gravity.RIGHT);
dan
text.setGravity(Gravity.CENTER_VERTICAL);
dan
text.setGravity(Gravity.CENTER_HORIZONTAL);
Dan Lebih Banyak Juga Tersedia
sumber
Coba tambahkan kode berikut untuk menerapkan parameter tata letak ke TextView
LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); lp.addRule(LinearLayout.CENTER_IN_PARENT); textView.setLayoutParams(lp);
sumber
jika ukuran teks Anda kecil, Anda harus membuat lebar tampilan teks Anda menjadi "fill_parent". Setelah itu, Anda dapat mengatur TextView Gravity ke tengah:
TextView textView = new TextView(this); textView.setText(message); textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); textView.setGravity(Gravity.CENTER);
sumber
Anda dapat menggunakan berikut ini untuk memusatkan
TextView
teks secara terprogram di Kotlin:textview.gravity = Gravity.CENTER
sumber
coba metode ini
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); }
sumber
Keduanya harus bekerja sama agar berhasil. Telah menggaruk kepalaku untuk sementara waktu.
numberView.textAlignment = View.TEXT_ALIGNMENT_CENTER numberView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
sumber