92

ここで少し寛大にお願いします。AndroidSDKチュートリアルから始めたばかりで、チュートリアル自体にはない興味のあることを試みていますが、簡単だと思います。

コードを介してアイテムを水平方向と垂直方向に中央揃えしようとしてTextViewいます(XMLで問題なく実行できます)。親がテーブルやその他のオブジェクトである場合にこれを行う方法の例をいくつか見てきましたが、これが私にとって理解しやすいものになることを願っています。(ps私の用語を自由に修正してください)。

チュートリアル/私の作業モデルのサンプルコードは次のとおりです。

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);
    }
}

メソッドを見つけることができsetGravity、それに手を出そうとしましたが、定数を解決するためsetLayoutParamsにインポートする必要があるものを見つけることができないため、スコープが何であるかわかりませんWRAP_CONTENT。私が理解したことから、センタリングとcontent_wrapping+gravityは2つの別個のものです。この場合の両方を行う方法の例と、APIドキュメントで答えを見つける方法/場所を教えてください。

4

9 に答える 9

255
yourTextView.setGravity(Gravity.CENTER);
于 2012-10-08T05:42:25.990 に答える
25

動的に中央に配置する場合

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2012-10-08T06:10:07.677 に答える
6

これは確かに機能します。

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);
textView.setLayoutParams(params);
textView.setGravity(Gravity.CENTER);

layout.addView(textView);

setcontentView(layout);
于 2012-10-08T05:36:53.427 に答える
5
TextView text = new TextView(this);

text.setGravity(Gravity.CENTER);

text.setGravity(Gravity.TOP);

text.setGravity(Gravity.BOTTOM);

text.setGravity(Gravity.LEFT);

text.setGravity(Gravity.RIGHT);

text.setGravity(Gravity.CENTER_VERTICAL);

text.setGravity(Gravity.CENTER_HORIZONTAL);

そしてもっとまた利用可能

于 2013-08-19T10:20:06.780 に答える
2

レイアウトパラメータをTextViewに適用するには、次のコードを追加してみてください

LayoutParams lp = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(LinearLayout.CENTER_IN_PARENT);
textView.setLayoutParams(lp);
于 2012-10-08T05:32:45.780 に答える
2

テキストサイズが小さい場合は、テキストビューの幅を「fill_parent」にする必要があります。その後、TextViewGravityを中央に設定できます。

TextView textView = new TextView(this);
textView.setText(message);
textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
textView.setGravity(Gravity.CENTER);
于 2014-11-04T03:03:59.403 に答える
2

以下を使用して、プログラムTextViewでテキストをKotlinの中央に配置できます。

textview.gravity = Gravity.CENTER
于 2018-08-21T22:03:06.050 に答える
1

この方法を試してください

  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);
}
于 2018-11-12T06:23:59.373 に答える
0

それが機能するためには、これら2つが一緒に行く必要があります。しばらく頭をかいていた。

numberView.textAlignment = View.TEXT_ALIGNMENT_CENTER
 numberView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
于 2020-01-27T09:49:24.830 に答える