我使用的是横向ListView
(列表仅包含TextView
),现在我想使用 xml drawable 在列表下方显示line
项目user taps
。
正如我们通常在Sliding Tabs
中使用的那样,请查看下面的屏幕截图,在此示例中,用户选择了 Tab1 , Tab2 & ; Tab3 处于正常状态。
同样地,我希望实现我的custom drawable
以便与我的TextView
实现相同的效果,为此,我正在关注this链接。
但我仍然没有取得任何成功,请参阅我的TextView的属性:
<TextView
android:text="@string/app_name"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_margin="5dp"
android:textColor="#000000"
android:textAppearance="?android:attr/textAppearanceMedium"
android:background="@drawable/custom_textview"
android:ellipsize="marquee" />
custom_textview.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<layer-list>
<item>
<shape>
<solid android:color="#ffff7a00" />
</shape>
</item>
<item android:bottom="3dp">
<shape>
<solid android:color="#222222" />
</shape>
</item>
</layer-list>
</item>
</selector>
答案 0 :(得分:0)
使用此代码替换您的custom_textview.xml
var lbl : UILabel = UILabel(frame: CGRectMake(225, 5, 20, 20))
lbl.layer.borderColor = UIColor.whiteColor().CGColor
lbl.layer.borderWidth = 2
lbl.layer.cornerRadius = lbl.bounds.size.height/2
lbl.textAlignment = NSTextAlignment.Center
lbl.layer.masksToBounds = true
lbl.font = UIFont(name: hereaddyourFontName, size: 13)
lbl.textColor = UIColor.whiteColor()
lbl.backgroundColor = UIColor.redColor()
lbl.text = "1" //if you no need remove this
// add subview to tabBarController?.tabBar
self.tabBarController?.tabBar.addSubview(lbl)
答案 1 :(得分:0)
你可以使用简单的逻辑来做到这一点 创建row.xml
<LinearLayoutadd attributes with orientation vertical>
<TextView/>
<View android:id="@+id/checkId/>
</LinearLayout/>
创建模型(POJO)
public class MyModel{
String name;
boolean isChecked;
public MyModel(String name,boolean isChecked){
this.name=name;
this.isChecked = isChecked;
}
//apply getters and setters
}
现在创建适配器 在你的getView方法中 检查值isChecked是true还是false如果为true,则设置id为checkId的视图的背景颜色,否则将其更改为白色
现在转到OnItemClickListener 使用for循环来确保单击了哪个项目
for(int i = 0 ;i < youlist.size;i++){
yourlist.get(i).setIsChecked(false);
}
yourlist.get(positionoflistitem).setIsChecked(true);
youradapter.notifyDataSetChanged();
你完成了