안드로이드의 안드로이드 쪽에서 android : gravity를 TextView로 설정하는 방법 작업을 수행해야합니다. 내 textview는 tablerow에 중요한 경우

android:gravity="bottom|center_horizontal"원하는 결과를 얻으려면 textview에서 xml을 사용할 수 있지만 프로그래밍 방식 으로이 작업을 수행해야합니다. 내 textview는 tablerow에 중요한 경우 안에 relativelayout있습니다.

나는 시도했다 :

LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);

그러나 올바르게 이해 tablerow하면 텍스트 뷰가 아닌에 적용됩니다 .



답변

labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM);

Kotlin 버전 (Thommy 덕분에)

labelTV.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM

또한 중력 또는 layout_gravity에 대해 이야기하고 있습니까? 후자는 RelativeLayout 에서 작동하지 않습니다 .


답변

텍스트를 텍스트보기의 중앙에 배치합니다.

TextView ta = (TextView) findViewById(R.layout.text_view);
LayoutParams lp = new LayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
ta.setLayoutParams(lp);

답변

우리는 아래의 방법으로 모든 뷰에서 레이아웃 중력을 설정할 수 있습니다.

myView = findViewById(R.id.myView);
myView.setGravity(Gravity.CENTER_VERTICAL|Gravity.RIGHT);
 or
myView.setGravity(Gravity.BOTTOM);

이것은 xml 코드 아래에 해당합니다.

<...
 android:gravity="center_vertical|right"
 ...
 .../>

답변

을 사용해야합니다 textView.setGravity(Gravity.CENTER_HORIZONTAL);.

사용하는 것을 기억하십시오

LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;

작동하지 않습니다. 텍스트가 아닌 위젯의 중력을 설정합니다.


답변

이 코드를 사용하십시오

        TextView textView = new TextView(YourActivity.this);
        textView.setGravity(Gravity.CENTER | Gravity.TOP);
        textView.setText("some text");

답변

textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);

이것은 텍스트 뷰의 중력을 설정합니다.


답변

몇 가지 작업을 수행 하여이 문제를 해결하고 먼저 height내 것을 가져 와서 TextView텍스트 size로 다이빙하여 가능한 총 줄 수를 얻습니다 TextView.

int maxLines = (int) TextView.getHeight() / (int) TextView.getTextSize();

이 값을 얻은 후에 TextView maxLines는이 새 값 으로 설정해야 합니다.

TextView.setMaxLines(maxLines);

설정 GravityBottom라인의 최대 크기가 초과되면 그것은 자동으로 스크롤됩니다.

if (TextView.getLineCount() >= maxLines) {
    TextView.setGravity(Gravity.BOTTOM);
}

이 제대로 작동하기 위해서는, 당신은 사용해야 append()받는 TextView당신이 경우, setText()이 작동하지 않습니다.

TextView.append("Your Text");

이 방법의 장점은 다음 방법에 관계없이 동적으로 사용할 수 있다는 것입니다. height 사용자 TextView와 텍스트에size 입니다. 레이아웃을 수정하기로 결정한 경우이 코드는 여전히 작동합니다.