我环顾四周,但大多数都没有任何意义。有些第三个参数在Android文档中不存在,至少不再存在。任何人都知道如何做到这一点?到目前为止我有这个:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
convertView = inflater.inflate(R.layout.day_view_item, parent, false);
}
((TextView)convertView.findViewById(R.id.day_hour_side)).setText(array[position]);
if(count == 1) {
LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.day_event_layout);
TextView create = new TextView(parent.getContext());
create.setLayoutParams(new LayoutParams(0, 30));
create.setBackgroundColor(Color.BLUE);
create.setText("Test");
layout.addView(create);
count = count -1;
}
return convertView;
}
我正在尝试将其添加到LinearLayout
中的ListView
,因此您在代码中看到的方法。一个问题是当我运行它时TextView
没有显示出来。所以我在想我需要layout_weight。虽然,我对一件事感到困惑。 LayoutParams
构造函数(dp或px)的宽度和高度参数是什么值?我还将添加xml我试图在incase添加它的地方有用:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/day_hour_side"
android:layout_width="wrap_content"
android:layout_height="62dp"
android:text="12AM"
android:background="#bebebe"
android:layout_weight="0"
android:textSize="10dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"/>
<LinearLayout
android:id="@+id/day_event_layout"
android:layout_width="0dp"
android:layout_height="62dp"
android:layout_weight="1"
android:paddingTop="1dp"
android:paddingBottom="1dp"
android:orientation="horizontal" ></LinearLayout>
答案 0 :(得分:4)
首先,LayoutParams
构造函数使用像素(根据文档)。
要以编程方式设置layout_weight
,您需要使用LinearLayout.LayoutParams
。当你指出时,ViewGroup.LayoutParams
没有第三个参数,但前者确实如此。
试试这个:
create.setLayoutParams(new LinearLayout.LayoutParams(0, 30, 1.0f));
ViewGroup.LayoutParams
是任何类型布局中任何View
的布局参数集(因为这些布局都是ViewGroup
s)。如果您具有特定布局(例如LinearLayout
),则可以使用LinearLayout.LayoutParams
来访问特定于该类型布局的内容。在这种情况下,layout_weight
特定于LinearLayout
s,因此您必须使用LinearLayout.LayoutParams
来访问此权重参数。
您还应该从XML中的layout_weight="0"
中删除TextView
。如果仍然无法解决此问题,请为LinearLayout
提供背景颜色,看看它是否完全可见,然后使用您的调查结果和任何更改/新代码编辑您的OP。