私は持っていて、中HorizontalScrollView
にボタンを追加していて、ボタンに設定していました。LinearLayout
HorizontalScrollView
onClickListener
をスクロールしScrollView
てすぐにボタンをクリックすると、応答しませんonClick
が、スクロールしてから3〜5秒後に、onClickに応答します。
どうすればこれに乗れるのか説明してください。私は何かが足りないのですか?
<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>
そして、アクティビティでは、ボタンを追加し、「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);
}