Click here to see xml result
我正在尝试通过点击LinearLayout来访问edit_profile_fragment
主要事件
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="15dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="20dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/editProfile"
android:clickable="true"
android:focusable="true"
android:paddingTop="15dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/location" />
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:paddingStart="20dp"
android:text="My address"
android:textSize="14sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="30dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:src="@drawable/arrow_expand" />
</RelativeLayout>
</LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="45dp">
<View
style="@style/Divider"
android:layout_gravity="bottom" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
MainActivity.java ///////////////////////////////////////// ///////////////////
public LinearLayout getLinearLayout() {
linearLayout = (LinearLayout) findViewById(R.id.editProfile);
linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(AccountActivity.this,EditProfileFragment.class);
startActivity(intent);
}
});
return linearLayout;
}
正如您所看到的,我有一个可点击的LinearLayout,但是当我点击它时它不会启动新的活动或片段! 先谢谢你。
答案 0 :(得分:0)
在onClick
方法中使用此代码的和平。
FragmentTransaction transaction = getFragmentManager();
transaction.beginTransaction()
.replace(R.id.editProfile, new EditProfileFragment())
.commit();
答案 1 :(得分:0)
首先。在点击getLinearLayout()
之前,您是否曾致电方法LinearLayout
?第二件事 - 你有多种布局&#34;覆盖&#34;您的LinearLayout
因此您需要将其属性(线性的所有子项)设置为android:clickable="false"
,将LinearLayout
设置为android:clickable="true"
,最后设置为第三项:您有很多嵌套布局这是一种可怕的做法。你应该肯定它是平的(考虑ConstraintLayout
),但它不是你的问题..