2

我在 LinearLayout 中有两个 ImageView、一个文本字段和一个 WebView。我的 ImageView 侦听器不工作。这是我的 XML:

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



    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="back"
        android:adjustViewBounds="true"
        android:clickable="true"
        android:src="@drawable/back_icon" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:clickable="true"
        android:contentDescription="forward"
        android:src="@drawable/back_icon"/>
    <EditText
        android:id="@+id/adressBar"
        android:imeOptions="actionDone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:ems="10" >
    </EditText>

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

这是我的Java代码。我应该指出 Log.d 语句没有触发,所以它肯定不会被调用:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
    if (savedInstanceState == null) {
        L.d(">>onCreateView", "savedInstanceState null");
    }
    View v = inflater.inflate(R.layout.browser,null);
    mWebView = (WebView) v.findViewById(R.id.webView);
    back =(ImageView) v.findViewById(R.id.imageView1);
    back.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d("backkkkkkkkkkkkkkkk", "msg");

        }
    });
    return v;
}
4

5 回答 5

1

尝试这个

    v = inflater.inflate(R.layout.browser, container, false);
 ImageView back = (ImageView)findViewById(R.id.imageVIew1);
        back.setOnClickListener(new View.OnClickListener(){

       @Override
    public void onClick(View v) {
        Log.d("backkkkkkkkkkkkkkkk", "msg");

    }
});  
于 2013-06-03T12:55:12.823 回答
0

为您的 xml 文件中的所有视图设置为可聚焦的 false。或 setOnClickListener for imageview 在你的片段中的 onActivityCreated() 方法中。

于 2013-06-03T14:03:04.393 回答
0

你需要像这样膨胀视图

v = inflater.inflate(R.layout.browser, container, false);
back =(ImageView) v.findViewById(R.id.imageView1);
back.setOnClickListener(new View.OnClickListener())
{
..
}
于 2013-06-03T12:50:17.173 回答
0

尝试这个-

back.setOnClickListener(this);

并实现 onclicklistener..

于 2013-06-03T12:51:25.323 回答
0

我有一个类似的问题,并通过添加android:layout_width="44dp"以确保用户有足够的区域可以点击来修复它。然后,您可以按照您想要的方式对齐图像内容。就我而言:

    <ImageView
    android:id="@+id/locationImageView"
    android:layout_width="44dp"
    android:layout_height="16dp"
    android:layout_centerVertical="true"
    android:layout_marginStart="4dp"
    android:layout_toEndOf="@id/locationText"
    android:adjustViewBounds="true"
    android:scaleType="fitStart"
    android:src="@drawable/icn_edit_small_white"/>
于 2017-07-07T23:24:41.587 回答