问题
I have an HorizontalScrollView
and I am adding buttons in LinearLayout
inside HorizontalScrollView
and had set onClickListener
to buttons.
When I scroll the ScrollView
and immediately click on any button it never responds to onClick
, but 3-5 seconds after scrolling, it responds to onClick.
Please explain how can I get ride of this. Am I missing something?
<HorizontalScrollView android:layout_height="wrap_content"
android:layout_width="600dip"
android:layout_centerInParent="true" android:gravity="left"
android:id="@+id/horizontalScrollView1"
>
<LinearLayout android:orientation="horizontal"
android:id="@+id/llChnnelCategoriesLayout" android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TextView android:text="All " android:id="@+id/optionText1"
style="@style/CategoriesText"></TextView>
<TextView android:text="l"
style="@style/CategoriesDeviderText"></TextView>
<TextView android:text="Business News" android:id="@+id/optionText2"
style="@style/CategoriesText"></TextView>
<TextView android:text="l"
style="@style/CategoriesDeviderText"></TextView>
</LinearLayout>
</HorizontalScrollView>
And in Activity I am adding buttons and setting 'onClickListener'.
LinearLayout llChannelCategoriesLayout;
arrChannelCategory = new String[] {"All Channels","Business News","Entertainment", "News","Cartoon","Music","Other"};
llChannelCategoriesLayout =(LinearLayout)findViewById(R.id.llChnnelCategoriesLayout);
llChannelCategoriesLayout.removeAllViews();
for(int i=0; i<arrChannelCategory.length;i++)
{
Button btnCategory = new Button(this);
TextView tvDevider = new TextView(this);
tvDevider.setTextAppearance(getApplicationContext(), R.style.ChannelCategoriesDeviderText);
btnCategory.setTextAppearance(getApplicationContext(), R.style.ChannelCategoriesText);
//btnCategory.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);
btnCategory.setText(arrChannelCategory[i]);
btnCategory.setPadding(Math.round(15*density), Math.round(5*density), Math.round(15*density), Math.round(5*density));
btnCategory.setClickable(true);
btnCategory.setBackgroundColor(Color.TRANSPARENT);
btnCategory.setId(i+3000);
if(i != arrChannelCategory.length-1)
{
tvDevider.setText(" l ");
}
btnCategory.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
changeColor(v.getId());
Log.v("Channel Category Clicked ==","***"+arrChannelCategory[v.getId()-3000]);
}
});
llChannelCategoriesLayout.addView(btnCategory);
llChannelCategoriesLayout.addView(tvDevider);
}
//changeColor(3000);
}
来源:https://stackoverflow.com/questions/7649078/android-click-event-of-items-in-horizontalscrollview-not-respond-after-scroll