【问题标题】:Android: Listview where each item is a webviewAndroid:Listview,其中每个项目都是一个 webview
【发布时间】:2010-06-30 15:13:12
【问题描述】:

我有一个列表视图,列表中的每个项目都有一个自定义适配器。如果我的自定义项目是一些 textview 一切正常。但是每个项目都必须是一些 html,因此我需要每个项目都是 webview。问题是 webview 窃取了我的点击,因此我无法再从列表中选择一个项目。

所以这个:

    this.itemAdapter = new ItemAdapter(this, R.layout.webview, itemArrayList);
    ListView lv1 = (ListView) findViewById(R.id.ListView01);
    lv1.setOnItemClickListener( new ItemSelected());
    lv1.setAdapter(this.itemAdapter);

public class ItemSelected implements OnItemClickListener 
{
    @Override
    public void onItemClick(AdapterView av, View v, int item, long id) 
    {
        Intent showTextIntent = new Intent(showItems, ShowItemDetails.class); 
        showTextIntent.putExtra("itemID", singleItems.get(item).getItemID());
        startActivity(showTextIntent);
    }
}

点击已死。我在 webview 中没有任何链接或必须导航我只使用它来获得一个漂亮的格式化文本(对于 textview 的 fromHtml 不是那么好)。有机会吗?

【问题讨论】:

    标签: android webview


    【解决方案1】:

    尝试在 WebView 中使用 setClickable(false),或在 XML 布局中使用 android:clickable="false"

    【讨论】:

      【解决方案2】:

      我找到了两种方法来实现它:

      1:在WebView上设置触摸监听器来重定向触摸事件

      webView.setOnTouchListener(new View.OnTouchListener() {
          @Override
          public boolean onTouch(View v, MotionEvent event) {
              if (event.getAction() == MotionEvent.ACTION_UP) {
                  // Do your thing
              }
              return false;
          }
      });
      

      2:避免触发所有可能的触摸事件

      webView.setClickable(false);
      webView.setLongClickable(false);
      webView.setFocusable(false);
      webView.setFocusableInTouchMode(false);
      

      【讨论】:

        【解决方案3】:

        将 webviews 属性可点击和可聚焦设置为 false 对我有用。 这样做 ListView 的 OnItemClickListener 再次触发。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-12-08
          • 1970-01-01
          • 1970-01-01
          • 2021-07-12
          • 2023-03-17
          • 2014-10-17
          • 1970-01-01
          • 2020-12-29
          相关资源
          最近更新 更多