Android 无法隐藏FrameLayout
我正在开发Android即时聊天应用程序。在聊天活动中,我使用的是框架布局。以下是xml文件:Android 无法隐藏FrameLayout,android,android-framelayout,Android,Android Framelayout,我正在开发Android即时聊天应用程序。在聊天活动中,我使用的是框架布局。以下是xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FCAB26" android:orientation="ver
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FCAB26"
android:orientation="vertical"
android:weightSum="1">
<ListView
android:id="@+id/list_view_messages"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight=".60"
android:background="@null"
android:divider="@null"
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"></ListView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_weight=".10"
android:orientation="horizontal"
android:weightSum="1">
<ImageView
android:id="@+id/imgSmile"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".10"
android:src="@drawable/ic_msg_panel_smiles"
android:layout_gravity="center_vertical"
android:layout_marginRight="-10sp"/>
<com.rockerhieu.emojicon.EmojiconEditText
android:id="@+id/edtMessage"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:hint="Enter Message"
android:layout_weight=".60"></com.rockerhieu.emojicon.EmojiconEditText>
<Button
android:id="@+id/btnSendMessage"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_weight=".30"
android:gravity="center"
android:onClick="onClick"
android:text="Send Message" />
</LinearLayout>
<FrameLayout
android:id="@+id/emojicons"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".30"
android:visibility="gone" />
它工作正常。因此,我的问题是如何在创建活动时将框架设置为不可见。它应该显示在图像视图中的clickinh上。软键盘的高度和布局应该相同。屏幕截图如下所示:
1.屏幕截图
2。单击图像视图
3。单击编辑文本
请帮助我解决此问题。使用
View.GONE
而不是View.INVISIBLE
// Hiding the FrameLayout containing the list of Emoticons
public void hideEmojiPopUp(boolean hideEmoji) {
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.emojicons);
frameLayout.setVisibility(View.GONE);
}
查看。不可见
此视图不可见,但仍会占用布局空间
目的
查看。已消失
此视图是不可见的,并且不占用任何布局空间
目的
这是因为您正在使用权重。 删除权重总和和布局权重,并使用换行内容
<FrameLayout
android:id="@+id/emojicons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
而不是
public void hideEmojiPopUp(boolean hideEmoji) {
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.emojicons);
frameLayout.setVisibility(View.INVISIBLE);
}
用这个
public void hideEmojiPopUp(boolean hideEmoji) {
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.emojicons);
frameLayout.setVisibility(View.GONE);
}
你用的是隐形而不是消失。“不可见”仅隐藏视图而不留下空间,如果消失,也会删除空白空间。因此,请使用Goe here。我认为在这种情况下,您不应该在这种情况下使用重量。试着给它一个固定的高度,
setVisibility(View.GONE)
单击图像视图,一切都正常。但问题是当第一次创建聊天活动时,FrameLayout正在占用一些空间。您可以在xml文件中看到,我已将可见性设置为已消失。我不希望FrameLayout在此处占用一些空间。我在设计聊天活动的屏幕时遇到问题。正如您所看到的,我想要一个列表视图,一个线性布局(包含imageview、edittext、Send message按钮)设计中的框架布局。我使用线性布局来解决我的目的。但它对我不起作用。我之前使用了重量。因此,即使在将可视性设置为“消失”后,框架布局仍占据了一些空间。当我从线性布局中移除重量并指定固定高度时,但这对我来说仍然不起作用。首先,你需要将线性布局作为一个主父级,宽度、高度和方向为“匹配父级”。在该线性布局内,获取一个宽度匹配且高度为0dp的列表视图。并给出权重1。现在再做一个线性布局,使用此设计布局进行图像,编辑文本和发送按钮。在此处关闭此线性布局,最后为imozy创建您的视图。谢谢Aakash。它对我有效。您能告诉我如何控制软键盘的高度吗?实际上,在我的情况下,软键盘和表情键盘的高度不同。我想使其相等。
public void hideEmojiPopUp(boolean hideEmoji) {
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.emojicons);
frameLayout.setVisibility(View.INVISIBLE);
}
public void hideEmojiPopUp(boolean hideEmoji) {
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.emojicons);
frameLayout.setVisibility(View.GONE);
}