首页 > 解决方案 > 相对布局不使用片段路由到其他屏幕

问题描述

当我点击它时,我的主屏幕上有一个relative layout它应该移动到另一个屏幕。但我无法使该布局可点击。我有以下代码relative layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_marginBottom="60dp"
        android:scrollbars="none"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:clickable="true">

            <FrameLayout
                android:id="@+id/content_frame"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >
            </FrameLayout>

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/homeprofile">
                    <ImageView
                        android:layout_width="173dp"
                        android:layout_height="128dp"
                        android:layout_alignParentTop="true"
                        android:layout_alignParentBottom="true"
                        android:layout_marginTop="10dp"
                        android:layout_marginBottom="15dp"
                        android:background="@drawable/white_do_background"
                        ></ImageView>

                    <RelativeLayout
                        android:layout_width="184dp"
                        android:layout_height="129dp">

                        <TextView
                            android:id="@+id/greetings"
                            android:layout_width="match_parent"
                            android:layout_height="38dp"
                          />

                        <TextView
                            android:id="@+id/greetings2"
                            android:layout_width="180dp"
                            android:layout_height="43dp"

                             />
                    </RelativeLayout>

                </LinearLayout>
            </RelativeLayout>
//Easy Yoga
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="110dp"
                android:background="@drawable/whitecard"
                android:outlineAmbientShadowColor="@color/black"
                android:layout_margin="20dp">

                <RelativeLayout
                    android:layout_width="161dp"
                    android:layout_height="105dp"
                    android:paddingLeft="15.5dp"
                    android:layout_alignParentRight="true"
                   >

                    <TextView
                        android:id="@+id/EasyYoga"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="10dp"
                        android:text="Easy Yoga"

                        android:textSize="16.5dp"
                         />

                    <TextView
                        android:id="@+id/Follow"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="40dp"
                        android:text="Follow The Steps"
                        android:textSize="12dp"

                        />

                    <TextView
                        android:id="@+id/Poses"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="60dp"
                        android:text="10 Poses"
                        android:textSize="12dp"

                        />

                </RelativeLayout>

            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/easy_yoga"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_marginTop="-130dp"
                android:padding="10dp">


                <ImageView
                    android:layout_width="157dp"
                    android:layout_height="177dp"
                    android:layout_marginLeft="20dp"
                    android:elevation="20dp"
                    android:src="@mipmap/easy_yoga" />
            </RelativeLayout>
            //HardYoga
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="110dp"
                android:background="@drawable/whitecard"
                android:outlineAmbientShadowColor="@color/black"
                android:layout_margin="20dp">

                <RelativeLayout
                    android:layout_width="161dp"
                    android:layout_height="105dp"
                    android:layout_alignParentRight="true"
                    android:paddingLeft="15.5dp"
                    >

                    <TextView
                        android:id="@+id/HardYoga"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="10dp"
                        android:text="Hard Yoga"
                        android:textSize="16.5dp"
                       />

                    <TextView
                        android:id="@+id/FollowHard"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="40dp"
                        android:text="Follow The Steps"
                        android:textSize="12dp"

                       />

                    <TextView
                        android:id="@+id/PosesHard"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="60dp"
                        android:text="10 Poses"
                        android:textSize="12dp"

                        />
                </RelativeLayout>
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_marginTop="-130dp"
                android:padding="10dp">


                <ImageView
                    android:layout_width="157dp"
                    android:layout_height="177dp"
                    android:layout_marginLeft="20dp"
                    android:elevation="20dp"
                    android:src="@mipmap/hard_yoga" />
            </RelativeLayout>
            //Surya Namaskara
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="110dp"
                android:background="@drawable/whitecard"
                android:outlineAmbientShadowColor="@color/black"
                android:layout_margin="20dp">

                <RelativeLayout
                    android:layout_width="161dp"
                    android:layout_height="105dp"
                    android:paddingLeft="15.5dp"
                    android:layout_alignParentRight="true"
                   >

                    <TextView
                        android:id="@+id/SuryaNamaskara"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:text="Surya Namaskara"
                        android:layout_marginTop="10dp"
                        android:textSize="16.5dp"
                       />

                    <TextView
                        android:id="@+id/FollowSurya"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="40dp"
                        android:text="Follow The Steps"
                        android:textSize="12dp"

                       />

                    <TextView
                        android:id="@+id/PosesSurya"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="60dp"
                        android:text="10 Poses"
                        android:textSize="12dp"

                       />
                </RelativeLayout>
            </RelativeLayout>
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_marginTop="-130dp"
                android:padding="10dp">


                <ImageView
                    android:layout_width="157dp"
                    android:layout_height="177dp"
                    android:layout_marginLeft="20dp"
                    android:elevation="20dp"
                    android:src="@mipmap/surya_namaskara" />
            </RelativeLayout>
            //Animal Pose
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="110dp"
                android:background="@drawable/whitecard"
                android:outlineAmbientShadowColor="@color/black"
                android:layout_margin="20dp">

                <RelativeLayout
                    android:layout_width="161dp"
                    android:layout_height="105dp"
                    android:paddingLeft="15.5dp"
                    android:layout_alignParentRight="true"
                   >

                    <TextView
                        android:id="@+id/AnimalPose"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="10dp"
                        android:text="Animal Pose"

                        android:textSize="16.5dp"
                        />

                    <TextView
                        android:id="@+id/FollowAnimal"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="40dp"
                        android:text="Follow The Steps"
                        android:textSize="12dp"

                        />

                    <TextView
                        android:id="@+id/PosesAnimal"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="60dp"
                        android:text="10 Poses"
                        android:textSize="12dp"

                        />
                </RelativeLayout>
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_marginTop="-130dp"
                android:padding="10dp">


                <ImageView
                    android:layout_width="157dp"
                    android:layout_height="177dp"
                    android:layout_marginLeft="20dp"
                    android:elevation="20dp"
                    android:src="@mipmap/animal_ppose" />
            </RelativeLayout>
            //All Yoga Excercises

            <RelativeLayout
                android:id="@+id/exercise_btn"
                android:layout_width="match_parent"
                android:layout_height="110dp"
                android:layout_margin="20dp"
                android:background="@drawable/whitecard"
                android:outlineAmbientShadowColor="@color/black"
                android:clickable="true"
                >

                <RelativeLayout
                    android:layout_width="161dp"
                    android:layout_height="105dp"
                    android:layout_alignParentRight="true"
                    android:paddingLeft="15.5dp">

                    <TextView
                        android:id="@+id/AllYoga"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="10dp"
                        android:text="All Yoga Excercises"
                        android:textSize="16.5dp" />

                    <TextView
                        android:id="@+id/FollowAllYoga"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="40dp"
                        android:text="Follow The Steps"
                        android:textSize="12dp"
                        />
                    <TextView
                        android:id="@+id/PosesAllYoga"
                        android:layout_width="match_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="60dp"
                        android:text="30 Poses"
                        android:textSize="12dp"

                        />
                </RelativeLayout>
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:layout_marginTop="-130dp"
                android:padding="10dp">


                <ImageView
                    android:layout_width="157dp"
                    android:layout_height="177dp"
                    android:layout_marginLeft="20dp"
                    android:elevation="20dp"
                    android:src="@mipmap/all_exercise" />
            </RelativeLayout>

        </LinearLayout>

    </ScrollView>
</LinearLayout>

下面是我的类功能,有一个开关盒,因为我在主屏幕上有不同的类别,所以当单击特定类别时,它应该移动到该屏幕,我无法做到这一点。

    public class Hscreen extends AppCompatActivity {
    TextView AllYoga;
   RelativeLayout excerisebtn;
    ArrayList<Youga_helper> yougahelpers = new ArrayList<>();
    int curretlyloadstack = 0;

    @SuppressLint("WrongViewCast")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hscreen);
        this.excerisebtn = (RelativeLayout) findViewById(R.id.excerise_btn);
        this.AllYoga=(TextView)findViewById(R.id.AllYoga);


        this.AllYoga.setOnClickListener(this::onClick);
        this.excerisebtn.setOnClickListener((View.OnClickListener) this);
    }

    public void onClick(View view){
        switch (view.getId()){
            case R.id.excerise_btn :
                Bundle bundle = new Bundle();
                bundle.putSerializable("yoga_helper", this.yougahelpers);
                Excerise_F exerciseF = new Excerise_F();
                exerciseF.setArguments(bundle);
                replacefragment(exerciseF);
                this.curretlyloadstack = 0;
                return;
            default:return;
        }
    }

    public void replacefragment(Fragment fragment) {
        if (fragment != null) {
            getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();
        }
    }
}

我要路由的屏幕工作正常。

我该如何解决

标签: javaandroidandroid-layoutandroid-fragments

解决方案


在您的 XML 中,确保您已像这样为 relativelayout 设置 ID

android:id="@+id/excerise_btn"

在你的 JAVA 中,按照下面的代码

@Override
protected void onCreate(Bundle savedInstanceState) {


    excerisebtn = (RelativeLayout) findViewById(R.id.excerise_btn);

    excerisebtn.setOnClickListener(this);
 
}

@Override
public void onClick(View view){
     if(view.getId() == excerisebtn.getId()){
      // DO WHAT YOU WANT WHEN THE RELATIVE LAYOUT IS CLICKED HERE.
    }
}

推荐阅读