新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android實現(xiàn)仿時間軸
下面來看看時間軸的實現(xiàn),效果如下圖
其實只不過是布局+動態(tài)生產(chǎn)TextView罷了,一開始選的是 FrameLayout,后來發(fā)現(xiàn)在處理單擊事件的時候一個問題 ,例如:

創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元都江堰做網(wǎng)站,已為上家服務(wù),為都江堰各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
- FrameLayout frameLayout= (FrameLayout) findViewById(R.id.frameLayout);
- for(...){
- frameLayout.add(tv1);
- frameLayout.add(tv2);
- //在這里直接處理單擊事件肯定是不行的,tv1和tv2是重合在一起的
- }
- FrameLayout frameLayout= (FrameLayout) findViewById(R.id.frameLayout);
- for(...){
- tv1.setLayoutparams(....);
- frameLayout.add(tv1);
- frameLayout.add(tv2);
- //在這里直接處理單擊事件就可以了,不知道為什么?
- }
所以,直接改 成Linearlayout了,改成Linearlayout后,那些TextView的位置也好設(shè)置多了,下面是代碼:
- package com.lliq.ui;
- import Android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.Window;
- import android.widget.FrameLayout;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- import com.lliq.R;
- public class HistoryActivity extends Activity
- {
- private final int space_year = 5;
- private final int space_month = 5;
- private String[] year = { "2010", "2011", "2012", "2013" };
- private String[][] month = { { "01", "03", "04", "11" }, { "07" }, { "01", "03", "04", "11" },
- { "07" } };
- boolean menu_falg = false;// 單擊改變菜單圖標(biāo)
- private TextView[] tv_year;
- private TextView[] tv_month;
- private TextView content;
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- setContentView(R.layout.iq_history);
- initLayout();
- }
- private void initLayout()
- {
- LinearLayout btnback = (LinearLayout) findViewById(R.id.history_layouthome);
- final TextView btnhome = (TextView) findViewById(R.id.history_btnhome);
- btnback.setOnClickListener(new OnClickListener()
- {
- @Override
- public void onClick(View arg0)
- {
- menu_falg = !menu_falg;
- btnhome.setBackgroundResource(menu_falg ? R.drawable.menuspread : R.drawable.menu_n);
- MainActivity.handler.sendEmptyMessage(0);
- }
- });
- content = (TextView) findViewById(R.id.content);
- LinearLayout timelayout = (LinearLayout) findViewById(R.id.timelayout);
- tv_year = new TextView[year.length];
- for (int i = 0; i < year.length; i++)
- {
- tv_year[i] = new TextView(this);
- tv_year[i].setPadding(
- 10,
- i == 0 ? space_year : space_year
- * (13 - Integer.parseInt(month[i - 1][month[i - 1].length - 1])), 0, 0);
- tv_year[i].getPaint().setFakeBoldText(true);
- tv_year[i].setTextSize(14);
- tv_year[i].setTag(year[i]);
- tv_year[i].setText(year[i] + " --");
- tv_year[i].setOnClickListener(new TimeLineClickListener(tv_year[i]));
- timelayout.addView(tv_year[i]);
- tv_month = new TextView[year.length];
- for (int j = 0; j < month[i].length; j++)
- {
- tv_month[i] = new TextView(this);
- if (j == 0)
- {
- tv_month[i].setPadding(20, space_month * Integer.parseInt(month[i][j]), 0, 0);
- } else
- {
- tv_month[i].setPadding(20, space_month
- * (Integer.parseInt(month[i][j]) - Integer.parseInt(month[i][j - 1])),
- 0, 0);
- }
- tv_month[i].setTextSize(12);
- tv_month[i].setText(month[i][j] + "月 --");
- tv_month[i].setTag(year[i] + "-" + month[i][j]);
- tv_month[i].setOnClickListener(new TimeLineClickListener(tv_month[i]));
- timelayout.addView(tv_month[i]);
- }
- }
- }
- class TimeLineClickListener implements OnClickListener
- {
- TimeLineClickListener(View v)
- {
- }
- @Override
- public void onClick(View v)
- {
- content.setText(v.getTag().toString());
- }
- }
- }
新聞名稱:Android實現(xiàn)仿時間軸
分享路徑:http://fisionsoft.com.cn/article/djgdpph.html


咨詢
建站咨詢
