use*_*486 21 java android view gravity
我正在开发一个ViewAndroid源代码.我想知道我们如何设置多个重力,以定制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"
/>
Run Code Online (Sandbox Code Playgroud)
如你所见,默认引力是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);
}
Run Code Online (Sandbox Code Playgroud)
setGravity方法不起作用View.那么在默认情况下是否可以设置重力而不会丢失宽度和高度?
提前致谢.
Han*_*oit 36
由于com.android.systemui.statusbar.policy.Clock扩展TextView,只需将其转换为TextView并设置重力.
TextView clock = (TextView) mStatusBarView.findViewById(R.id.clock);
clock.setGravity(mCenterClock ? Gravity.CENTER : (Gravity.CENTER_VERTICAL | Gravity.LEFT));
Run Code Online (Sandbox Code Playgroud)
参考:源代码
你有没有尝试过?
clock.setGravity(Gravity.CENTER | Gravity.CENTER_VERTICAL);
Run Code Online (Sandbox Code Playgroud)
编辑:
因为你不能setGravity用于平原View,做这样的事情,
您可以使用a RelativeLayout并设置这样的规则......
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
params.addRule(RelativeLayout.CENTER_HORIZONTAL|RelativeLayout.CENTER_IN_PARENT, clock.getId());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42862 次 |
| 最近记录: |