我如何通过android中的java代码设置重力,我有一个像这样的Remoteview
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
我想通过java代码添加重力。我尝试使用这种方式,但它不成功。
views.setGravity(Gravity.CENTER);
我如何通过android中的java代码设置重力,我有一个像这样的Remoteview
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
我想通过java代码添加重力。我尝试使用这种方式,但它不成功。
views.setGravity(Gravity.CENTER);
答案取决于您要调用该方法的视图类型。如果它是例如 LinearlLayout,这将完成这项工作:
rv.setInt(R.id.MyView, "setGravity", Gravity.CENTER);
我在 LinearLayout 和 TextView 上对其进行了测试,它确实适用于布局,但不适用于 TextView。所以我的假设是它只受 ViewGroup 类的支持(您可以通过检查 Android 源代码中的 @android.view.RemotableViewMethod 注释的 setGravity(int) 方法自己检查该假设)。
因此,如果您想以编程方式更改 TextView 的重力,则需要将 TextView 包装在其自己的 LinearLayout 中并改为更改 LinearLayout 的重力,例如使用以下布局:
<LinearLayout
android:id="@+id/day_header_title_wrapper"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/day_header_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
并像这样设置重力:
rv.setInt(R.id.day_header_title_wrapper, "setGravity", Gravity.CENTER);