Передний план Drawable не охватывает весь вид
Я использую FrameLayout
с ColorDrawable
на переднем плане. Большую часть времени он работает нормально, но иногда цвет не заполняет весь View
, Кажется, помнят высоты других взглядов.
Вот пример, демонстрирующий проблему.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
Random random = new Random();
final List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 50; i++)
list.add(50 + random.nextInt(150));
final Drawable blue = new ColorDrawable(Color.BLUE);
ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(new ArrayAdapter<Integer>(this, -1, list) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
FrameLayout frameLayout;
TextView textView;
if (convertView == null) {
frameLayout = (FrameLayout) getLayoutInflater().inflate(R.layout.item, parent, false);
textView = new TextView(MyActivity.this);
frameLayout.addView(textView);
} else {
frameLayout = (FrameLayout) convertView;
textView = (TextView) frameLayout.getChildAt(0);
}
textView.setHeight(list.get(position));
frameLayout.setForeground(blue);
return frameLayout;
}
});
}
Я думаю, что единственные промежутки между синими блоками должны быть ListView
делители, но иногда вы получаете большие промежутки, как показано ниже. Кто-нибудь может объяснить это?