gpt4 book ai didi

android - LinearLayout 在预 hive 上有分隔线

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:27 24 4
gpt4 key购买 nike

来自 API 级别 11 setDividerDrawable()setShowDividers()介绍于 LinearLayout ,使线性布局能够显示子元素之间的分隔线。我真的很想使用这个功能,但我也在定位 Honeycomb 之前的设备(API 级别 < 11)。

解决此问题的一种方法是扩展 LinearLayout 并手动添加分隔线。这是一个原型(prototype):

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;

public class DividerLinearLayout extends LinearLayout
{
public DividerLinearLayout(Context context)
{
super(context);
}

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

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

@Override
public void addView(View child)
{
if(super.getChildCount() > 0)
{
super.addView(LayoutInflater.from(getContext()).inflate(R.layout.divider, null));
}
super.addView(child);
}
}

但是,使用这样的实现会改变任何客户端迭代子项的行为。有些 View 将由客户端自己插入,有些将由 DividerLinearLayout 插入。如果用户在指定索引处插入 View ,也会出现问题。可以实现索引的转换,但如果操作不当,可能会导致严重的错误。另外,我认为还有很多方法需要重写。

有没有更好的方法来解决这个问题?是否有人已经开发出可免费使用的 DividerLinearLayout 等价物?它似乎不存在于 Android 的兼容性库中。

最佳答案

如果我没记错的话,ActionBarSherlock 库已经实现了它以提供向后兼容的 ActionBar 选项卡。您可能希望先包含该库,然后在自己动手之前试一试。

这是 the code对于特定类 (com.actionbarsherlock.internal.widget.IcsLinearLayout)。

关于android - LinearLayout 在预 hive 上有分隔线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12145153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com