gpt4 book ai didi

java - 如何在android中以编程方式设置listview高度

转载 作者:行者123 更新时间:2023-11-29 05:00:38 26 4
gpt4 key购买 nike

我正在制作一个应用程序,其中我的键盘出现在 Activity 中并且它隐藏了可能的标题 View (布局)我已经搜索并尝试调整隐藏的 Pane 状态,不调整 list 中的所有属性但没有解决我的问题然后我在 stackover flow 上找到一个帖子,你可以计算间距然后设置我实现的高度,但行为仍然相同这是 Activity 出现时的快照 enter image description here

但是当 keyborad 弹出时它隐藏了我的标题 View 这是正在发生的事情的快照 enter image description here

这是我的 list 代码

 <activity
android:name="com.dd.sproutchat.ChatActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing">
</activity>

这是我对该 Activity 的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff">

<RelativeLayout
android:id="@+id/TopLayout"
android:layout_width="match_parent"
android:layout_height="55dp">

<ImageButton
android:id="@+id/btn_back"
android:layout_width="20dp"
android:layout_height="30dp"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:background="@drawable/back_icon_2x"
android:textColor="#000000"
android:textSize="22sp" />

<LinearLayout
android:id="@+id/Image"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/btn_back">

<Button
android:id="@+id/recUserImg"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/image_circle_shape"
android:text=""
android:textColor="@color/white"
android:visibility="gone" />

<com.dd.sproutchat.customcontrols.MLRoundedImageView
android:id="@+id/userImg"
android:layout_width="50dp"
android:layout_height="50dp" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@+id/btn_Search"
android:layout_toRightOf="@+id/Image"
android:orientation="vertical">

<TextView
android:id="@+id/txtUserName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="start"
android:gravity="left"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/black" />

<TextView
android:id="@+id/txtOnlineStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/black" />
</LinearLayout>

<ImageButton
android:id="@+id/btn_Menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:background="@drawable/menu_icon_2x"
android:visibility="gone" />

<ImageButton
android:id="@+id/btn_Search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:background="@drawable/search_icon_2x" />
</RelativeLayout>

<RelativeLayout
android:id="@+id/Rl_line"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/TopLayout"
android:background="@color/chat_border"></RelativeLayout>

<RelativeLayout
android:id="@+id/Rl_Options"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_below="@+id/Rl_line"
android:background="@color/chat_options_bg">

<ImageButton
android:id="@+id/btn_Home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:background="@drawable/home_btn_active_2x" />

<ImageButton
android:id="@+id/btn_SproutesList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/chat_btn_2x" />

<ImageButton
android:id="@+id/btn_Note"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:background="@drawable/note_btn_2x" />
</RelativeLayout>

<RelativeLayout
android:id="@+id/Rl_line2"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/Rl_Options"
android:background="@color/chat_border"></RelativeLayout>

<RelativeLayout
android:id="@+id/Rl_ChatLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/Rl_MessageLayout"
android:layout_below="@+id/Rl_line2">

<!-- android:background="@drawable/chat_bg_2x" -->

<RelativeLayout
android:id="@+id/Btn_Chats"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:weightSum="4">

<RelativeLayout
android:id="@+id/count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone">

<ImageButton
android:id="@+id/btn_Sortby"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:background="@drawable/icon_sortby_sprout_2x" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_toLeftOf="@+id/btn_AddSprout"
android:layout_toRightOf="@+id/btn_Sortby"
android:weightSum="2">

<Button
android:id="@+id/btn_AllSprouts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/btn_blue"
android:paddingBottom="3dp"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:paddingTop="3dp"
android:text="@string/AllSprouts"
android:textColor="@color/white" />

<Button
android:id="@+id/btn_AllFavorites"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_weight="1"
android:background="@drawable/btn_blank"
android:paddingBottom="3dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="3dp"
android:text="@string/AllFavorites"
android:textColor="@color/grey_start" />
</LinearLayout>

<ImageButton
android:id="@+id/btn_AddSprout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:background="@drawable/icon_add_sprout_2x" />
</RelativeLayout>

<RelativeLayout
android:id="@+id/noteLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:visibility="gone">

<EditText

android:id="@+id/searchBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/imageButton4" />

<ImageButton
android:id="@+id/imageButton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_toLeftOf="@+id/imageButton5"
android:background="@drawable/sort" />

<ImageButton
android:id="@+id/imageButton5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dp"
android:background="@drawable/add" />
</RelativeLayout>
</RelativeLayout>

<ListView
android:id="@+id/Lv_Chat"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/Btn_Chats"
android:layout_above="@+id/Rl_MessageLayout"
android:divider="@null"
android:dividerHeight="0dp"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:scrollbars="none"
android:stackFromBottom="true"
android:transcriptMode="normal"></ListView>
<RelativeLayout
android:id="@+id/Rl_MessageLayout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:background="@color/chat_screen_bottom">

<ImageButton
android:id="@+id/btn_Attachment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:background="@drawable/attachment_icon_white_2x" />

<EditText
android:id="@+id/edt_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@+id/btn_Send"
android:layout_toRightOf="@+id/btn_Attachment"
android:background="@drawable/txt_field"
android:imeOptions="actionDone"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:singleLine="true"
/>

<ImageButton
android:id="@+id/btn_Send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:background="@drawable/icon_send_white_2x" />
</RelativeLayout>
</RelativeLayout>


</RelativeLayout>

</RelativeLayout>

这是我计算 ListView 高度的 Activity 代码

private static boolean keyboardHidden = true;
private static int reduceHeight =0;

final View decorView = this.getWindow().getDecorView();
decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect rect = new Rect();
decorView.getWindowVisibleDisplayFrame(rect);
int displayHeight = rect.bottom - rect.top;
int height = decorView.getHeight();
boolean keyboardHiddenTemp = (double) displayHeight / height > 0.8;
int mylistviewHeight = Lv_Chat.getMeasuredHeight();
if (keyboardHiddenTemp != keyboardHidden) {
keyboardHidden = keyboardHiddenTemp;
if (!keyboardHidden) {
reduceHeight = height - displayHeight;
RelativeLayout.LayoutParams mParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, mylistviewHeight - reduceHeight);
Lv_Chat.setLayoutParams(mParam);
Lv_Chat.requestLayout();
} else {
RelativeLayout.LayoutParams mParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, mylistviewHeight + reduceHeight);
Lv_Chat.setLayoutParams(mParam);
Lv_Chat.requestLayout();
}
}
}
});

我也尝试过这个链接来设置 xml 文件 http://codetheory.in/android-add-views-view-groups-listview-gridview/

请帮忙

最佳答案

要更改 ListView 的高度,您应该使用 LayoutParams:

ViewGroup.LayoutParams param = listView.getLayoutParams();
param.height = anynumberhere;
listView.setLayoutParams(param);
listView.requestLayout();

根据您的问题,这是更改 ListView 高度的方法,但我不认为这是让您的标题保持在原位的正确方法。

关于java - 如何在android中以编程方式设置listview高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32223128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com