8

幅を Wrap_content として設定した textview にテキストを追加しようとしています。このテキストビューの幅を取得しようとしています。しかし、すべてのケースで 0 を示しています。テキストを設定した後、テキストビューの幅を取得するにはどうすればよいですか。

コードは次のとおりです。

        LinearLayout ll= new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);
        TextView tv = new TextView(this);
        tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        ll.addView(tv);
        tv.setText("Hello 1234567890-0987654321qwertyuio787888888888888888888888888888888888888888888888888");
        System.out.println("The width is == "+tv.getWidth());// result is 0
        this.setContentView(ll);

提案してください。前もって感謝します。

4

8 に答える 8

1

いつこれを呼んでいますか?すでに画面に描画されていますか?

電話をかけるのgetWidth()が早すぎるようです。

こちらの質問もご覧ください。

于 2013-04-15T18:06:51.937 に答える
0

これは私のために働く:

RelativeLayout.LayoutParams mTextViewLayoutParams = (RelativeLayout.LayoutParams) mTextView.getLayoutParams();
mTextView.setText(R.string.text);
mTextView.measure(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
int width = mShareTip.getMeasuredWidth();
//use the width to do what you want
mShareTip.setLayoutParams(mShareTipLayoutParams);
于 2016-06-06T07:06:26.937 に答える
0

これを使用する必要があります:

textView.getMeasuredWidth();

于 2014-02-26T09:57:09.017 に答える