横向菜单——HorizontalScrollView
2016-03-13 20:08
288 查看
private void setNav() {
//获取宽度
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenwidth= metrics.widthPixels;
itemwidth=screenwidth/MyTools.getType().size();
for (int i = 0; i < MyTools.getType().size(); i++) {
LayoutParams params = new LinearLayout.LayoutParams(itemwidth,RadioGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin=15;
params.rightMargin=15;
//创建textview
TextView localtextview = new TextView(this);
localtextview.setText(MyTools.getType().get(i));//设置textview的text
localtextview.setTextSize(16.0f);//设置字体大小
localtextview.setBackgroundResource(R.drawable.nab_bg);//设置背景
localtextview.setPadding(5, 15, 5, 15);//设置内边矩
localtextview.setGravity(Gravity.CENTER);//设置居中
if(itemwidthIndex==i){
localtextview.setSelected(true);
}
localtextview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int j = 0; j < MyTools.getType().size(); j++) {
TextView tv = (TextView) nav_ll.getChildAt(j);//获取linearlaout中的控件
if(tv==v){
tv.setSelected(true);
nav_vp.setCurrentItem(j);
}else{
tv.setSelected(false);
}
}
}
});
nav_ll.addView(localtextview, i, params);
}
}
private void selectType(int position) {
itemwidthIndex=position;
for (int i = 0; i < nav_ll.getChildCount(); i++) {
TextView tv0 = (TextView)nav_ll.getChildAt(position);
int k = tv0.getMeasuredWidth();
int l = tv0.getLeft();
int i2 = l + k / 2 - screenwidth / 2;// 计算要滚动到的位置
hsv.smoothScrollTo(i2, 0);
}
for (int i = 0; i < nav_ll.getChildCount(); i++) {
View view = nav_ll.getChildAt(i);
if (position == i) {
view.setSelected(true);
} else {
view.setSelected(false);
}
}
}
//布局文件
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="0.5"
android:orientation="horizontal">
<HorizontalScrollView
android:id="@+id/horizonscrollview"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/nav_ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
//获取宽度
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
screenwidth= metrics.widthPixels;
itemwidth=screenwidth/MyTools.getType().size();
for (int i = 0; i < MyTools.getType().size(); i++) {
LayoutParams params = new LinearLayout.LayoutParams(itemwidth,RadioGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin=15;
params.rightMargin=15;
//创建textview
TextView localtextview = new TextView(this);
localtextview.setText(MyTools.getType().get(i));//设置textview的text
localtextview.setTextSize(16.0f);//设置字体大小
localtextview.setBackgroundResource(R.drawable.nab_bg);//设置背景
localtextview.setPadding(5, 15, 5, 15);//设置内边矩
localtextview.setGravity(Gravity.CENTER);//设置居中
if(itemwidthIndex==i){
localtextview.setSelected(true);
}
localtextview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int j = 0; j < MyTools.getType().size(); j++) {
TextView tv = (TextView) nav_ll.getChildAt(j);//获取linearlaout中的控件
if(tv==v){
tv.setSelected(true);
nav_vp.setCurrentItem(j);
}else{
tv.setSelected(false);
}
}
}
});
nav_ll.addView(localtextview, i, params);
}
}
private void selectType(int position) {
itemwidthIndex=position;
for (int i = 0; i < nav_ll.getChildCount(); i++) {
TextView tv0 = (TextView)nav_ll.getChildAt(position);
int k = tv0.getMeasuredWidth();
int l = tv0.getLeft();
int i2 = l + k / 2 - screenwidth / 2;// 计算要滚动到的位置
hsv.smoothScrollTo(i2, 0);
}
for (int i = 0; i < nav_ll.getChildCount(); i++) {
View view = nav_ll.getChildAt(i);
if (position == i) {
view.setSelected(true);
} else {
view.setSelected(false);
}
}
}
//布局文件
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="0.5"
android:orientation="horizontal">
<HorizontalScrollView
android:id="@+id/horizonscrollview"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/nav_ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
相关文章推荐
- 【LeetCode OJ 073】Set Matrix Zeroes
- 机电传动控制 第三周作业
- cocos2d tolua C++对象使用lua对象的变量,函数
- [Spring] 注入Bean属性
- centos6用户和权限管理
- Hdu 1716 排列2【stl+dfs排列组合】
- 安装GDK
- 转载:双线性插值
- [几何 递推] BZOJ 1074 折纸
- 蓝桥杯
- poj1753
- Fragment的使用(一)
- 清除webBrowser 缓存和Cookie的解决方案
- +号的使用
- Struts2国际化介绍及详细说明
- 线段树(维护最大值):HDU Billboard
- 使用JDBC进行数据库的事务操作(1)
- CodeForces 596A--Wilbur and Swimming Pool
- 阿里面试问题
- jenkins+git+android+gradle持续集成问题总结