Изменить позицию зрения программно - PullRequest
0 голосов
/ 05 апреля 2019

Я добавил макет XML в основной макет следующим образом:

View customView = LayoutInflater.from(requireContext()).inflate(R.layout.anim_map_toolbar, null);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
    params.gravity = Gravity.RIGHT;
    params.rightMargin = 20;
    params.topMargin = 20;
    customView.setLayoutParams(new FrameLayout.LayoutParams(params));
View animationView = customView.findViewById(R.id.anim_toolbar);
mainConstraintLayout.addView(customView);

Но этот макет появился в вверху и слева от основного макета Я хочу изменить позицию на верхний правый с полем сверху и справа от основного макета !!!

Я использовал

params.gravity = Gravity.RIGHT;

params.rightMargin = 20;

params.topMargin = 20;

но это не сработало и все еще вид находится справа и сверху !!!

Это основной макет XML:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".fragment.MapFragment"
    android:id="@+id/main_constraintLayout">

</android.support.constraint.ConstraintLayout>

Это макет anim_map_toolbar.xml:

<android.support.v7.widget.LinearLayoutCompat
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:orientation="horizontal"
    android:background="@drawable/animate_toolbar_style"
    android:gravity="center">

    <android.support.v7.widget.AppCompatImageView
        android:id="@+id/imv_setting"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:layout_gravity="center"
        android:adjustViewBounds="false"
        android:cropToPadding="false"
        app:srcCompat="@drawable/ic_settings" />
</android.support.v7.widget.LinearLayoutCompat>

1 Ответ

0 голосов
/ 05 апреля 2019

Согласно @Mikem, я изменился на это:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
        params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,RelativeLayout.TRUE);
        params.rightMargin = 20;
        params.topMargin = 20;
        customView.setLayoutParams(params); 

и я преобразовал ConstraintLayout в RelativeLayout из основного макета XML.

Теперь моя проблема ушла .. Спасибо @ Mikem

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...