尝试让我的ImageButtons响应触摸事件。这些ImageButtons是动态创建的,并添加到HorizontalScrollView中的LinearLayouts中,这些都在布局资源中设置。
我如何添加图片按钮
ImageButton button = new ImageButton( getActivity() );
button.setBackgroundResource( plugin.mIcon.mBackgroundID );
button.setImageResource( plugin.mIcon.mIconID );
button.setEnabled( plugin.isEnabled() );
// need to set the layout parameters of this button.
currentLayout.addView(button);
// we have to setup the layout parameters after it has been added to its parent.
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) button.getLayoutParams();
params.width = UnitConversionUtils.dipToPixels(getActivity(), PLUGIN_BUTTON_SIDE).intValue();
params.height = UnitConversionUtils.dipToPixels( getActivity(), PLUGIN_BUTTON_SIDE).intValue();
button.setLayoutParams(params);
button.setOnClickListener( this );
我的图片按钮ONCLICKLISTENER
我已经以两种不同的方式设置我的听众,试图让它运作起来。
button.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("Fragment","ImageButton clicked");
}
});
并且当我将按钮的监听器设置为此时,它是一个片段,它实现了View.OnClickListener
并且实现了public void onClick(View v);
方法。
XML布局资源
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
android:id="@+id/map_plugin_scroll_view"
android:background="@color/mm_map_drawer_background">
<!-- Enclosing box to layout the two groups.-->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:id="@+id/group_container">
<!-- These layouts contain the map plugins. -->
<LinearLayout
android:id="@+id/group_one"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"/>
<LinearLayout
android:id="@+id/group_two"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"/>
</LinearLayout>
</HorizontalScrollView>
我假设HorizontalScrollView正在消耗触摸,但我不确定。非常感谢任何帮助。
答案 0 :(得分:1)
问题就在这一行:
button.setEnabled( plugin.isEnabled() );
有时它是小事!