【发布时间】:2012-05-08 11:53:03
【问题描述】:
我正在通过 Android 源代码处理 View。我想知道我们如何设置多个重力,自定义View
这是 XML
<com.android.systemui.statusbar.policy.Clock
android:id="@+id/clock"
android:textAppearance="@style/TextAppearance.StatusBar.Clock"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:singleLine="true"
android:paddingLeft="6dip"
android:gravity="center_vertical|left"
/>
如你所见,默认重力是 center_vertical|left,所以我的 Java 代码应该是这样的
View clock = mStatusBarView.findViewById(R.id.clock);
if (clock != null) {
SOMEHOW SET GRAVITY -> mCenterClock ? Gravity.CENTER : (Gravity.CENTER_VERTICAL | Gravity.LEFT);
}
setGravity 方法不适用于View。那么有没有默认设置重力而不丢失宽度和高度的替代方法?
提前致谢。
【问题讨论】:
-
你真的想要重力还是想要 layout_gravity?
-
android:gravity="center_vertical|left",这是我要更改的属性。所以我猜只是重力?我错了吗?
-
不,我明白了,现在 - 但 Agarwal 是对的:使用实际类型,而不是 View,因为实际类型可能会响应 setGravity