【发布时间】:2017-04-15 13:26:07
【问题描述】:
我有一个 list.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.phongponix.trackingbodybuilding.MainActivity$PlaceholderFragment"
android:orientation="vertical"
>
<ListView android:id="@+id/lvExerciseList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="50dp"
></ListView>
</LinearLayout>
我的 list_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:padding="20dp"
android:id="@+id/containerTest">
<LinearLayout
android:id="@+id/first_panel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/imgExcercisePhoto"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:id="@+id/tvExerciseName"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="aaa" />
</LinearLayout>
<RelativeLayout android:id="@+id/rlRecordContainer"
android:layout_width="150dp"
android:layout_height="match_parent"
android:orientation="horizontal">
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rvExcerciseRecords"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@id/first_panel"
android:clipToPadding="false"
android:scrollbars="horizontal"></android.support.v7.widget.RecyclerView>
</LinearLayout>
我将适配器用于我的列表,如下所示:
if (convertView == null) {
view = inflater.inflate(R.layout.list_item, null);
viewHolder = new ViewHolder();
viewHolder.title = (TextView) view.findViewById(R.id.tvExerciseName);
view.setTag(viewHolder);
LinearLayout container = (LinearLayout)view.findViewById(R.id.first_panel);
LinearLayout.LayoutParams layoutParamsWeight = new LinearLayout.LayoutParams(convertDpToPixel(activity, 30), convertDpToPixel(activity, 20));
layoutParamsWeight.setMargins(0, 0, convertDpToPixel(activity, 5), convertDpToPixel(activity, 5));
EditText etWeight = new EditText(activity);
etWeight.setWidth(convertDpToPixel(activity, 30));
etWeight.setHeight(convertDpToPixel(activity, 20));
//etWeight.setLayoutParams(layoutParamsWeight);
etWeight.setBackgroundColor(ContextCompat.getColor(activity, R.color.colorEditTextBox));
etWeight.setInputType(InputType.TYPE_CLASS_NUMBER);
etWeight.setFocusableInTouchMode(true);
//etWeight.setId(currentWeightID);
container.addView(etWeight);
RelativeLayout relativeLayout = (RelativeLayout) view.findViewById(R.id.rlRecordContainer);
renderRecordItemHead(activity, relativeLayout);
renderRecordItem(activity, relativeLayout, currentWeightID);
recyclerView = (RecyclerView) view.findViewById(R.id.rvExcerciseRecords);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false);
linearLayoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(trackingPlanHorizontalAdapter);
}
如下图所示,如果我注释掉(不使用)LayoutParams,我可以输入并查看我的 EditText 中的字符。如果我为 EditText 使用 LayoutParams,我无法输入。当我点击 EditText 时,键盘出现,然后它失去焦点,所以每当我触摸键盘时,它什么都不显示。
【问题讨论】:
-
不要认真对待我的话你的问题在某种程度上没有意义,如果你不应用 layoutParams ViewGroup 应用默认参数
Wrap_CONTENT如果你(phongtran ) 应用 layoutparam 你给它确定的尺寸new LinearLayout.LayoutParams(convertDpToPixel(activity, 30)这就是为什么他们会那样做,我对吗? -
当您单击应用了 layoutparams 的 edittext 时,键盘是否可见??
标签: android listview android-edittext layoutparams