在daimajia AndroidImageSlider中是否提供了点击监听器到滑块的布局?
在我的项目中,有一个图像滑块由。当我点击图片时,我想打开另一个活动/页面。我已尝试在滑块布局中插入线性布局。但单击此线性布局中的侦听器会使滑块布局卡住在daimajia AndroidImageSlider中是否提供了点击监听器到滑块的布局?,android,android-xml,android-sliding,Android,Android Xml,Android Sliding,在我的项目中,有一个图像滑块由。当我点击图片时,我想打开另一个活动/页面。我已尝试在滑块布局中插入线性布局。但单击此线性布局中的侦听器会使滑块布局卡住 <com.daimajia.slider.library.SliderLayout android:id="@+id/advertiseSlider" android:layout_width="match_parent" android:layout_height="
<com.daimajia.slider.library.SliderLayout
android:id="@+id/advertiseSlider"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:id="@+id/linearSlider"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</com.daimajia.slider.library.SliderLayout>
没有正确测试此代码,但它是这样的:
SliderLayout mySliderLayout = (SliderLayout) findViewById(R.id.slider);
for (int i = 0; i < item.getImages().size(); i++) {
BaseSliderView baseSliderView = new BaseSliderView(context) {
@Override public View getView() {
View v = LayoutInflater.from(getContext()).inflate(R.layout.image_slider, null);
ImageView target = (ImageView) v.findViewById(R.id.daimajia_slider_image);
bindEventAndShow(v, target);
return v;
}
};
baseSliderView.image(item.getImages().get(i));
baseSliderView.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
@Override public void onSliderClick(BaseSliderView slider) {
Log.d("MyActivity", "index selected:" + mySliderLayout.getCurrentPosition());
}
});
mySliderLayout.addSlider(baseSliderView);
}
SliderLayout mySliderLayout=(SliderLayout)findViewById(R.id.slider);
对于(int i=0;i
我知道这是一个很老的问题,但我想我会评论一下
@Override
public void onCreate(Bundle savedInstance)
{
super.onCreate(savedInstance);
setContentView(R.layout.activity_layout);
SliderLayout mySliderLayout = (SliderLayout) findViewById(R.id.slider);
HashMap<String, Integer> image_maps = new HashMap<String, Integer>();
image_maps.put("Title1", R.drawable.slide1);
image_maps.put("Title2", R.drawable.slide2);
image_maps.put("Title3", R.drawable.slide3);
for (String name : image_maps.keySet())
{
TextSliderView textSliderView = new TextSliderView(this);
textSliderView
.description(name)
.image(image_maps.get(name))
.setOnSliderClickListener(this);
textSliderView.bundle(new Bundle());
textSliderView.getBundle()
.putString("extra", name);
sliderShow.addSlider(textSliderView);
}
sliderShow.setPresetTransformer(SliderLayout.Transformer.Accordion);
sliderShow.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
sliderShow.setCustomAnimation(new DescriptionAnimation());
sliderShow.setDuration(10000);
}
public void onSliderClick(BaseSliderView sliderview)
{
Intent myNewIntent = new Intent(getApplicationContext(), MyNewActivity.class);
startActivity(myNewIntent);
}
@覆盖
创建时的公共void(Bundle savedInstance)
{
super.onCreate(savedInstance);
setContentView(R.layout.activity_布局);
SliderLayout mySliderLayout=(SliderLayout)findViewById(R.id.slider);
HashMap image_maps=新建HashMap();
图像_映射。放置(“标题1”,R.可绘制。幻灯片1);
图像_maps.put(“Title2”,R.drawable.slide2);
图像_映射。放置(“标题3”,R.可绘制。幻灯片3);
for(字符串名称:image\u maps.keySet())
{
TextSliderView TextSliderView=新的TextSliderView(此);
文本幻灯片视图
.说明(姓名)
.image(image_maps.get(name))
.setOnSliderClickListener(本);
text sliderView.bundle(新bundle());
textSliderView.getBundle()
.putString(“额外”,名称);
添加滑块(textSliderView);
}
sliderShow.setPresetTransformer(滑块布局、Transformer.Accordion);
sliderShow.setPresetIndicator(滑块布局。PresetIndicators。中间\底部);
setCustomAnimation(新的DescriptionAnimation());
幻灯片。设置持续时间(10000);
}
滑块上的公共空白(BaseSliderView滑块视图)
{
Intent myNewIntent=newintent(getApplicationContext(),MyNewActivity.class);
星触觉(myNewIntent);
}
我希望它对任何人都有用:-)SliderLayout SliderLayout=(SliderLayout)view.findviewbyd(R.id.advertiseSlider);
最终列表listUrls=allImageUrlList();
对于(int index=0;index这是解决方案。首先,您需要在活动中实现BaseSliderView.OnSliderClickListener
它将提供以下覆盖方法
@Override
public void onSliderClick(BaseSliderView slider) {
Toast.makeText(getContext(),slider.getBundle().get("extra") + "",Toast.LENGTH_SHORT).show();
}
确保已将onClickListener添加到滑块中,如下所示
DefaultSliderView textSliderView = new DefaultSliderView(getContext());
textSliderView
.image("")
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(this);
DefaultSliderView textSliderView = new DefaultSliderView(getContext());
textSliderView
.image("")
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(this);