我的Android应用程序中有一个结构
LinearLayout> FrameLayout> ImageView(用作FrameLayout 背景)& RelativeLayout> TextView& ImageView的。
当我点击FrameLayout
或RelativeLayout
或FirstImageView(因为它是较大的区域,textView或第二图像视图很小)时,我需要这样做。
我尝试将setOnClickListener添加到此项目但没有工作。
这是我的代码:
public class HomeFragment extends Fragment {
View rootView;
public HomeFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.home_fragment, container, false);
RelativeLayout paleoFoodBackGround = (RelativeLayout) rootView.findViewById(R.id.relativeLytPaleoFoodHome);
paleoFoodBackGround.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("1FOOD_LIST", "onClick: ");
}
});
return rootView;
}
public void clickFood(){
Log.d("2FOOD_LIST", "onClick: ");
}
}
这是我的布局结构:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="50"
android:orientation="vertical"
android:paddingLeft="2.5dp"
android:paddingRight="5dp"
android:weightSum="100">
<FrameLayout
android:id="@+id/framePaleoFoodHome"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="50"
android:paddingBottom="2.5dp">
<ImageView
android:id="@+id/imgViewPaleoFoodBackGround"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:scaleType="center"
app:srcCompat="@drawable/recipes" />
<RelativeLayout
android:id="@+id/relativeLytPaleoFoodHome"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
>
<ImageView
android:id="@+id/imgViewRecipesIconHome"
style="@style/iconHome"
app:srcCompat="@drawable/cooking"
/>
<TextView
android:id="@+id/txtViewRecipesTxtHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/textViewHomeSquare"
android:text="@string/RecipesHome"
android:layout_below="@id/imgViewRecipesIconHome"/>
</RelativeLayout>
</FrameLayout>
<Framelayout> .... </Framelayout>
</LinearLayout>
答案 0 :(得分:0)
我建议使用ImageButton而不是图像。还要将RelativeLayout设置为android:clickable =“true”。同时设置所有不能用android点击的子视图:clickable =“false”