我在水平线性布局中有一个textview,textview是顶部对齐的。我想让它垂直对齐。
我将textview设置为名为“arrow”的样式
<style name="arrow">
<item name="android:textSize">30sp</item>
<item name="android:textColor">#ffffff</item>
<item name="android:textStyle">bold</item>
<item name="android:gravity">center</item>
<item name="android:layout_gravity">center</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
</style>
的java
LinearLayout LL = new LinearLayout(this);
LL.setOrientation(LinearLayout.HORIZONTAL);
LL.setPadding(15, 15, 15, 15);
LinearLayout.LayoutParams courseMargin = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
courseMargin.setMargins(5, 5, 5, 5);
LL.setLayoutParams(courseMargin);
// here I add more things into LL...
TextView arrow = new TextView(this);
arrow.setText(">");
arrow.setTextAppearance(this, R.style.arrow);
LL.addView(arrow);
然而,这仍然没有使它垂直对齐......
有谁知道这里有什么?
由于
答案 0 :(得分:3)
setTextAppearance()
州的javadoc:
设置文本颜色,大小,样式,提示颜色和突出显示颜色 指定的TextAppearance资源。
其中没有任何关于位置或重力的内容。我猜这就是为什么你的引力没有任何影响。
试试这样:
//for android:gravity
arrow.setGravity(Gravity.CENTER);
//for android:layout_gravity
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity=Gravity.CENTER;
arrow.setLayoutParams(params);
话虽如此,由于您的TextView
是宽度和高度WRAP_CONTENT
,android:gravity
不会产生任何影响。所以android:layout_gravity
代码块应该是您需要的全部内容。
答案 1 :(得分:0)
您还可以尝试在textView上使用SetGravity
。 setGravity