HorizontalScrollView動態新增控制元件並可以移動到點選的控制元件的位置
阿新 • • 發佈:2019-01-24
點選“第4期”後的效果圖為
程式碼:
mScrollView = (HorizontalScrollView)findViewById(R.id.scroll_view); mLinear = (LinearLayout)findViewById(R.id.linear); findViewById(R.id.btn).setOnClickListener(this); for (int i = 0; i < 120; i++) { myLinear = new LinearLayout(this); myLinear.setPadding(20, 0, 20, 0); // 新增控制元件 mLinear.addView(myLinear); // 設定控制元件屬性 LinearLayout.LayoutParams textViewLp = new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); TextView textView = new TextView(this); textView.setText("第" + (i+1) + "期"); textView.setGravity(Gravity.CENTER); textView.setTextColor(R.drawable.linear_bg); // 新增控制元件 myLinear.addView(textView, textViewLp); myLinear.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 記錄點選的位置 x = v.getX(); // 滑動到點選的位置 mScrollView.smoothScrollTo((int) x, 0); } }); }
@Override
public void onClick(View v) {
// 回到頂部
mScrollView.smoothScrollTo(0, 0);
}
程式碼地址:http://download.csdn.net/detail/how_old/9539234