这里是相关的代码位:
<HorizontalScrollView
android:id="@+id/cards_scrollview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:fillViewport="false" >
<TableRow
android:id="@+id/cards_container"
android:layout_width="wrap_content"
android:layout_height="100dp" >
<ImageView
android:id="@+id/test_card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="@dimen/cards_distance"
android:adjustViewBounds="true"
android:src="@drawable/card_back" />
</TableRow>
</HorizontalScrollView>
和
private void addCard(Drawable d) {
TableRow container = (TableRow) findViewById(R.id.cards_container);
ImageView card = new ImageView(this);
card.setAdjustViewBounds(true);
card.setPadding(R.dimen.zero, R.dimen.zero, R.dimen.cards_distance, R.dimen.zero);
TableRow.LayoutParams params = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
card.setLayoutParams(params);
card.setImageDrawable(d);
card.setVisibility(View.VISIBLE);
container.addView(card);
}
我确信我尝试添加的 Drawable 不为空,边界设置正确,alpha 设置为 255,并且适合。我通过将它应用到 test_card 而不是尝试添加新的 ImageView 来测试它,效果很好。
这里有什么我遗漏的吗?
最佳答案
修改代码一个小时后,事实证明 setPadding()
实际上将整数而不是资源引用作为参数,这就是把它搞砸的原因。
所以基本上我需要做的就是改变:
card.setPadding(R.dimen.zero, R.dimen.zero, R.dimen.cards_distance, R.dimen.zero);
到
card.setPadding(0, 0, 5, 0);
关于java - 以编程方式添加到 TableRow 时,ImageView 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16040528/