アンドロイドでJavaコードを介して重力を設定する方法、私はこのようなRemoteviewを持っています私はJavaコードを介して
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
重力を追加したいです。私はこの方法を使用してみましたが、成功しません。
views.setGravity(Gravity.CENTER);
アンドロイドでJavaコードを介して重力を設定する方法、私はこのようなRemoteviewを持っています私はJavaコードを介して
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
重力を追加したいです。私はこの方法を使用してみましたが、成功しません。
views.setGravity(Gravity.CENTER);
答えは、メソッドを呼び出すビューのタイプによって異なります。たとえば LinearlLayout の場合は、次のようにします。
rv.setInt(R.id.MyView, "setGravity", Gravity.CENTER);
LinearLayout と TextView でテストしたところ、レイアウトでは機能しますが、TextView では機能しません。したがって、ViewGroup クラスのみでサポートされていると仮定します (@android.view.RemotableViewMethod アノテーションの Android ソースの 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);