我正在尝试以编程方式创建LinearLayout
但有些东西没有按预期工作。
这是代码:
LinearLayout djCard = (LinearLayout)getLayoutInflater().inflate(R.layout.cardtemplate, null);
ImageView djimage = new ImageView(this);
djimage.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 2));
djimage.setAdjustViewBounds(true);
djimage.setScaleType(ImageView.ScaleType.FIT_START);
bmpDj = BitmapFactory.decodeStream(am.open("djs/horger.jpg"));
djimage.setImageBitmap(bmpDj);
RobotoTextView djtext = new RobotoTextView(this);
djtext.setText(R.string.title_horger);
djtext.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 8));
djtext.setGravity(Gravity.CENTER_VERTICAL);
djtext.setTypeface(RobotoTypefaceManager.obtaintTypeface(this,12));
djtext.setTextSize(R.dimen.textSizeLarge);
djCard.addView(djimage);
djCard.addView(djtext);
container.addView(djCard);
cardtemplate:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="-7dp"
android:clickable="true"
android:orientation="horizontal"
style="@style/nowCardStyle"/>
看看这个截图:上面的卡是我在xml中的,另一个是我动态创建的卡。即使TextView
(自定义一个)也没有显示......
这是我在xml中的卡片布局(这是我想要的):
<LinearLayout
android:id="@+id/djCard1"
style="@style/nowCardStyle"
android:clickable="true"
android:padding="-7dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/djImg1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:scaleType="fitStart"
android:adjustViewBounds="true"/>
<com.mikebdev.douala.widget.RobotoTextView
android:id="@+id/djText1"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/activity_vertical_margin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:typeface="roboto_condensed_light"
android:textSize="@dimen/textSizeLarge"
android:layout_weight="8"/>
</LinearLayout>
答案 0 :(得分:1)
这可能不是您问题的答案,但它可能会解决您的问题:
您使用LinearLayout充气cardtemplate.xml
,并尝试以编程方式添加ImageView和RobotoTextView。
为什么不膨胀你提供的第二个XML文件,将ImageView和RobotoTextView作为子项包含在内并从父项中检索这些子项?
例如:
ImageView djimage = (ImageView) djCard.findViewById(R.id.djImg1);
RobotoTextView djtext = (RobotoTextView) djCard.findViewById(R.id.djText1);
然后你可以从XML中扩展布局,并尝试以编程方式创建布局,以避免麻烦:)