首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义导航栏

自定义导航栏
EN

Stack Overflow用户
提问于 2012-02-05 10:26:23
回答 1查看 827关注 0票数 0

我想做一个自定义的水平导航栏,它包含的点和我的网页一样多。

我的想法是:

创建自定义ListView

  • Create类Dot从视图
  1. 添加所有这些点到自定义列表视图中

这样做对吗?

编辑:

代码语言:javascript
复制
public class NavigationBarLesson extends LinearLayout {
    private LessonConfig config = LessonConfig.getInstance();
    private ArrayList<NavigationCircle> navigationCircles;
    private int pageCount;

    public NavigationBarLesson(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }   

    public NavigationBarLesson(Context context) {
        super(context);
        init(context);
    }

    private void init(Context context) {
        Log.i("init","yes");
        pageCount = config.getLektionCount();
        navigationCircles = new ArrayList<NavigationCircle>();

        for(int i=0; i < pageCount; i++){
            this.addView(new NavigationCircle(context));
        }

    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        int width = View.MeasureSpec.getSize(widthMeasureSpec);
        int height = View.MeasureSpec.getSize(heightMeasureSpec);

        setMeasuredDimension(width, height);
    }

}

public class NavigationCircle extends ImageView{
    private static Bitmap img;
    private Bitmap activeImg;


    public NavigationCircle(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    public NavigationCircle(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }   

    public NavigationCircle(Context context) {
        super(context);
        init();
    }

    public void init() {
        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        lp.setMargins(0, 0, 5, 0);
        this.setLayoutParams(lp);
        this.setBackgroundResource(R.drawable.upcoming_pages);
    }

    public Bitmap getImg() {
        return img;
    }

    public Bitmap getActiveImg() {
        return this.activeImg;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-05 10:31:25

我不明白你为什么需要一个ListView。使用一些简单的视图创建一个水平LinearLayout,比如TextView或ImageView等,这些视图都是动态添加到LinearLayout中的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9148485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档