Andorid layout move item in fragment

Viewed 143

I create a Fragment, but I can't even move item. If item is in the middle of my Fragment everything is correct, but if I try to add something that thing is invisible in my fragment> Some pictures: This is waht I need https://imgur.com/a/D9Adzzu

but I get something like that: https://imgur.com/a/qDzUXJj

As you can see, button is different and if I try to move(button) it become invisible

Code

fragment_user_account_details.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_green_light"
    style="@style/Theme.Design.NoActionBar"
    >

        <Button
            android:id="@+id/btnPassword"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="78dp"
            android:layout_marginEnd="74dp"
            android:text="Pass"
            android:textSize="30sp" />


    <TextView
        android:id="@+id/profileTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Profile Fragment"
        android:textSize="30sp" />


</RelativeLayout>

UserAccountDetails class

public class UserAccountDetails extends Fragment
{

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
    {
        View v = inflater.inflate(R.layout.fragment_user_account_details, container, false);

        String bundle = getArguments().getString("UserDetails");
        UserLogInData userLogInData = new Gson().fromJson(bundle, UserLogInData.class);
        TextView txt = v.findViewById(R.id.profileTextView);
        txt.setText(userLogInData.getUsername());

        Button btnPass = v.findViewById(R.id.btnPassword);
        btnPass.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View x) {
                startActivity(new Intent(UserAccountDetails.this.getContext(), ChangePasswordPop.class));
            }
        });

        return v;
    }
}

I use this tutorial: https://codinginflow.com/tutorials/android/navigation-drawer/part-3-fragments Everything except name of my Class is the same. Let me know if you need more info

1 Answers

The Root layout in your fragment is a Relative Layout, as the name suggests, this layout will set the position of the items either relative to itself or other child items in the layout,

If you want to move something then change its position with respect to another item in the RelativeLayout.

for example:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_green_light"
    style="@style/Theme.Design.NoActionBar">
        <Button
            android:layout_below="@+id/profileTextView"
            android:id="@+id/btnPassword"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="78dp"
            android:layout_marginEnd="74dp"
            android:text="Pass"
            android:textSize="30sp" />
    <TextView
        android:id="@+id/profileTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Profile Fragment"
        android:textSize="30sp" />
</RelativeLayout>

Here the button will move below the text, similarly you can make it go above

Related