if(v.getId()==keyboard.getId())
{
//DisplayMetrics displaymetrics = new DisplayMetrics();
//getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
//int width = displaymetrics.widthPixels;
//int editTextWidth = width*(2/3);
//int sendTextWidth = width*(1/3);
keyboard.setVisibility(View.GONE);
a.setVisibility(View.GONE);
b.setVisibility(View.GONE);
c.setVisibility(View.GONE);
d.setVisibility(View.GONE);
editText.setVisibility(View.VISIBLE);
//editText.setWidth(editTextWidth);
send.setVisibility(View.VISIBLE);
//send.setWidth(sendTextWidth);
}
您好。对于我的主页面布局,我的页面上显示了一些按钮,其中一个按钮名为keyboard
。单击keyboard
按钮后,所有按钮将变为“不可见”。然后editText和提交按钮将“可见”。
(因此,用户可以使用屏幕键盘输入内容,然后提交输入)。这就是上面的代码所示。
我目前无法构建新可见组件的布局。
这是editText和提交按钮的xml代码:
<EditText
android:id="@+id/editText"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:layout_weight="0"
android:inputType="textMultiLine|textNoSuggestions" />
<Button
android:id="@+id/send"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:onClick="speak"
android:text="@string/sendCommand" />
正如您所看到的,我只是将组件的宽度设置为零,因此它不会干扰应用程序启动时最初的布局可见按钮。我的问题是你如何设置刚刚设置为可见的新组件的尺寸和位置?另请查看我注释掉的代码。
@ eclipse1203:我无法使用android:visibility="gone"
,因为editText和提交按钮发生在可见按钮的相同位置。
答案 0 :(得分:0)
您可以使用所需的高度/宽度设置EditText和Button,然后设置属性
android:visibility="gone"
他们每个人。如果您真的想在代码中修改布局,那么您可以执行以下操作:( ViewGroup是LinearLayout,RelativeLayout等)
[ViewGroup].LayoutParams params = new [ViewGroup].LayoutParams(width, height);
params.setMargins(left, top, right, bottom);
EditText text = new EditText(context);
text.setLayoutParams(params);
答案 1 :(得分:0)
如果你不能使用
android:visibility="gone"
然后您应该使用android:visibility="invisible"
,因为在这种情况下,您会查看占用空间以进行布局。