How to set list view height programatically in android - java

I am making an application in which my keyboard comes up on the activity and it hides may header view (layout) I have searched and tried adjust pane state hidden,adjust nothing all the attributes in manifest but nothing solved my problem then I found one the posts over stackover flow that you can calculate the spacing then set the height I implemented but the behaviour is still same this is the sanpshot when activity comes
but when keyborad pops up it hides my header view this is snapshot of what's happening
this is my manifest code
<activity
android:name="com.dd.sproutchat.ChatActivity"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing">
</activity>
this is my layout of that 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>
and this is my activity code for calculating height of listview
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();
}
}
}
});
I have also tried this link for setting xml file
http://codetheory.in/android-add-views-view-groups-listview-gridview/
any help please

To change the height of ListView you should use LayoutParams:
ViewGroup.LayoutParams param = listView.getLayoutParams();
param.height = anynumberhere;
listView.setLayoutParams(param);
listView.requestLayout();
According to your question, this is the way to change the ListView's height, but i don't think its the rite approach to make that header of yours stay in its place.

I think you should use adjustResize instead of adjustNothing and add android:fitsSystemWindows="true" in your root RelativeLayout instead of programmatically trying to resize your views.

Related

Align elements in Linear Layout

I'm trying to recreate this layout I made with the
RelativeLayout but I'm having a lot of troubles:
I divided the new LinearLayout into two sub-LinearLayout. In the first one I would place the Image and the description on the left, and the table with the text on the right. In the second LinearLayout I would put the last table and description. This is what it looks like by doing this:
This is the code, I really don't understand what's wrong:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="#+id/slidelinearlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#drawable/background_main2"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="640dp"
android:layout_height="438dp"
android:layout_gravity="left"
android:layout_weight="0.01"
android:gravity="left"
android:orientation="vertical">
<ImageView
android:id="#+id/slideimg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="124dp"
android:layout_marginTop="144dp"
tools:layout_conversion_absoluteHeight="380dp"
tools:layout_conversion_absoluteWidth="420dp"
tools:layout_editor_absoluteX="220dp"
tools:layout_editor_absoluteY="120dp" />
<TextView
android:id="#+id/txttitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/slideimg"
android:layout_alignEnd="#+id/slideimg"
android:padding="16dp"
android:text="Title Here"
android:textColor="#000000"
android:textSize="30sp"
android:textStyle="bold"
tools:layout_conversion_absoluteHeight="73dp"
tools:layout_conversion_absoluteWidth="166dp"
tools:layout_editor_absoluteX="330dp"
tools:layout_editor_absoluteY="480dp" />
<TextView
android:id="#+id/t1"
android:layout_width="249dp"
android:layout_height="79dp"
android:layout_above="#+id/tl"
android:layout_alignEnd="#+id/tl"
android:layout_marginEnd="13dp"
android:layout_marginBottom="-32dp"
android:fontFamily="#font/sriracha"
android:text="Punteggio finale"
android:textColor="#DD1717"
android:textSize="30dp"
tools:layout_conversion_absoluteHeight="61dp"
tools:layout_conversion_absoluteWidth="217dp"
tools:layout_editor_absoluteX="760dp"
tools:layout_editor_absoluteY="150dp" />
<TextView
android:id="#+id/t"
android:layout_width="wrap_content"
android:layout_height="57dp"
android:layout_alignTop="#+id/t1"
android:layout_alignEnd="#+id/t1"
android:layout_marginTop="5dp"
android:layout_marginEnd="33dp"
android:fontFamily="#font/sriracha"
android:text="______________"
android:textColor="#020101"
android:textSize="30dp"
tools:layout_conversion_absoluteHeight="61dp"
tools:layout_conversion_absoluteWidth="210dp"
tools:layout_editor_absoluteX="765dp"
tools:layout_editor_absoluteY="153dp" />
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="#+id/tl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="#+id/t2"
android:layout_alignParentEnd="true"
android:layout_marginEnd="265dp"
android:layout_marginBottom="86dp"
android:background="#android:color/white"
android:padding="18dp"
tools:context=".Result"
tools:layout_conversion_absoluteHeight="260dp"
tools:layout_conversion_absoluteWidth="316dp"
tools:layout_editor_absoluteX="220dp"
tools:layout_editor_absoluteY="190dp">
<TableRow
android:id="#+id/tr_item_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#drawable/table_row_bg"
android:padding="2dp">
<TextView
android:id="#+id/item_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingRight="10dp"
android:text=" Flessibilità"
android:textColor="#030101"
android:textSize="30dp" />
<TextView
android:id="#+id/f_item_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#070404"
android:textSize="30dp" />
</TableRow>
<TableRow
android:id="#+id/tr_item_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#drawable/table_row_bg"
android:padding="2dp">
<TextView
android:id="#+id/item_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingRight="10dp"
android:text=" Fluidità"
android:textColor="#070404"
android:textSize="30dp" />
<TextView
android:id="#+id/fl_item_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#070404"
android:textSize="30dp" />
</TableRow>
<TableRow
android:id="#+id/tr_item_3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#drawable/table_row_bg"
android:padding="2dp">
<TextView
android:id="#+id/item_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingRight="10dp"
android:text=" Originalità"
android:textColor="#070404"
android:textSize="30dp" />
<TextView
android:id="#+id/o_item_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#070404"
android:textSize="30dp" />
</TableRow>
<TableRow
android:id="#+id/tr_item_4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#drawable/table_row_bg"
android:padding="2dp">
<TextView
android:id="#+id/item_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingRight="10dp"
android:text=" Elaborazione"
android:textColor="#070404"
android:textSize="30dp" />
<TextView
android:id="#+id/el_item_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#070404"
android:textSize="30dp" />
</TableRow>
<TableRow
android:id="#+id/tr_item_5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#drawable/table_row_bg"
android:padding="2dp">
<TextView
android:id="#+id/item_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingRight="10dp"
android:text=" Titolo"
android:textColor="#070404"
android:textSize="30dp" />
<TextView
android:id="#+id/t_item_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#070404"
android:textSize="30dp" />
</TableRow>
</TableLayout>
</LinearLayout>
<LinearLayout
android:layout_width="408dp"
android:layout_height="279dp">
<TextView
android:id="#+id/t4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignEnd="#+id/tl_2"
android:layout_alignBottom="#+id/t1"
android:layout_gravity="right"
android:layout_marginEnd="-1dp"
android:layout_marginBottom="-478dp"
android:fontFamily="#font/sriracha"
android:gravity="right"
android:text="______________________"
android:textColor="#020101"
android:textSize="30dp"
tools:layout_conversion_absoluteHeight="115dp"
tools:layout_conversion_absoluteWidth="239dp"
tools:layout_editor_absoluteX="785dp"
tools:layout_editor_absoluteY="532dp" />
<TableLayout
android:id="#+id/tl_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="#+id/tl"
android:layout_alignParentBottom="true"
android:layout_marginTop="193dp"
android:layout_marginEnd="-248dp"
android:layout_marginBottom="26dp"
android:background="#android:color/white"
android:padding="25dp"
tools:context=".Result"
tools:layout_conversion_absoluteHeight="208dp"
tools:layout_conversion_absoluteWidth="314dp"
tools:layout_editor_absoluteX="710dp"
tools:layout_editor_absoluteY="560dp">
<TableRow
android:id="#+id/tr_item_6"
android:layout_width="222dp"
android:layout_height="match_parent"
android:background="#drawable/table_row_bg"
android:padding="2dp">
<TextView
android:id="#+id/t1_item_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingRight="10dp"
android:text=" Tempo di reazione"
android:textColor="#070404"
android:textSize="30dp" />
<TextView
android:id="#+id/tempo_item_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#070404"
android:textSize="30dp" />
</TableRow>
<TableRow
android:id="#+id/tr_item_7"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#drawable/table_row_bg"
android:padding="2dp">
<TextView
android:id="#+id/t2_item_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingRight="10dp"
android:text=" Tempo di completamento"
android:textColor="#070404"
android:textSize="30dp" />
<TextView
android:id="#+id/tempo_item_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#070404"
android:textSize="30dp" />
</TableRow>
<TableRow
android:id="#+id/tr_item_8"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#drawable/table_row_bg"
android:padding="2dp">
<TextView
android:id="#+id/n_cancellature"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingRight="10dp"
android:text=" Numero cancellature"
android:textColor="#070404"
android:textSize="30dp" />
<TextView
android:id="#+id/n_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#drawable/table_cell_bg"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#070404"
android:textSize="30dp" />
</TableRow>
</TableLayout>
<TextView
android:id="#+id/t2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="#+id/tl_2"
android:layout_marginEnd="-408dp"
android:layout_marginBottom="166dp"
android:layout_toStartOf="#+id/tl_2"
android:fontFamily="#font/sriracha"
android:text="Considerazioni aggiuntive"
android:textColor="#DD1717"
android:textSize="30dp"
tools:layout_conversion_absoluteHeight="115dp"
tools:layout_conversion_absoluteWidth="244dp"
tools:layout_editor_absoluteX="780dp"
tools:layout_editor_absoluteY="530dp" />
</LinearLayout>
Create the two separate layouts for the tables and include it in the main layout as follows:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#drawable/bg">
<LinearLayout
android:id="#+id/upperLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="160dp"
android:layout_marginTop="140dp"
android:orientation="vertical">
<ImageView
android:layout_width="400dp"
android:layout_height="350dp"
android:layout_marginRight="150dp"
android:background="#android:color/darker_gray"
android:src="#drawable/ic_launcher_link" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:layout_marginTop="20dp"
android:text="Senza nome"
android:textColor="#android:color/black"
android:textSize="40sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="#+id/upperTableHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="160dp"
android:text="Table Header here"
android:textColor="#android:color/holo_red_light"
android:textSize="30sp" />
<include layout="#layout/upper_table"></include>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#id/upperLayout"
android:layout_alignParentRight="true"
android:layout_marginTop="30dp"
android:layout_marginRight="80dp"
android:orientation="vertical">
<TextView
android:id="#+id/lowerTableHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Table Header here"
android:textColor="#android:color/holo_red_light"
android:textSize="30sp" />
<include layout="#layout/lower_table"></include>
</LinearLayout>
</RelativeLayout>
add the following methods to your Activity class:
public int getWidth() {
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels;
return width;
}
public void setLayoutMargins() {
View layout = findViewById(R.id.relative);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(layout.getLayoutParams());
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
layoutParams.topMargin = 400;
layout.setLayoutParams(layoutParams);
//ImageView Layout
View image = findViewById(R.id.imgage);
LinearLayout.LayoutParams imageParams = new LinearLayout.LayoutParams(image.getLayoutParams());
image.getLayoutParams();
imageParams.width = 800;
imageParams.height = 600;
image.setBackgroundColor(getResources().getColor(android.R.color.holo_green_dark));
image.setLayoutParams(imageParams);
//UpperTable Layout
View upperTable = findViewById(R.id.upperTableLayout);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(upperTable.getLayoutParams());
params.leftMargin = 250;
params.topMargin = 160;
upperTable.setLayoutParams(params);
}
public void setTextSizes() {
txt1 = findViewById(R.id.item_1);
txt2 = findViewById(R.id.item_2);
txt3 = findViewById(R.id.item_3);
txt4 = findViewById(R.id.item_4);
txt5 = findViewById(R.id.item_5);
f_item_1 = findViewById(R.id.f_item_1);
f_item_2 = findViewById(R.id.fl_item_2);
t1_item_1 = findViewById(R.id.t1_item_1);
tempo_item_1 = findViewById(R.id.tempo_item_1);
t2_item_2 = findViewById(R.id.t2_item_2);
tempo_item_2 = findViewById(R.id.tempo_item_2);
n_cancellature = findViewById(R.id.n_cancellature);
n_3 = findViewById(R.id.n_3);
txtSenza = findViewById(R.id.txtSenza);
txtUpper = findViewById(R.id.upperTableHeader);
txtLower = findViewById(R.id.lowerTableHeader);
txt1.setTextSize(30);
txt2.setTextSize(30);
txt3.setTextSize(30);
txt4.setTextSize(30);
txt5.setTextSize(30);
f_item_1.setTextSize(30);
f_item_2.setTextSize(30);
txtSenza.setTextSize(TypedValue.COMPLEX_UNIT_SP, 40);
txtLower.setTextSize(30);
txtUpper.setTextSize(30);
t1_item_1.setTextSize(30);
t2_item_2.setTextSize(30);
tempo_item_1.setTextSize(30);
tempo_item_2.setTextSize(30);
n_3.setTextSize(30);
n_cancellature.setTextSize(30);
}
and then finally add the following code to onCreate:
if (getWidth() > 2000) {
setLayoutMargins();
setTextSizes();
}

For a view with rotation perform(click()) doesn't work in espresso ui test

I write an espresso UI test for my application, and for some views (in this case ImageButton) perform(click()) doesn't work and also no error is displayed.
this is the line that not worked:
try {
Thread.sleep(TIME_NORMAL_ELPASED);
} catch (InterruptedException e) {
e.printStackTrace();
}
onView(allOf(withId(R.id.toolbar_navigation_btn)
, isCompletelyDisplayed())).perform(click());
and this is my xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="activities.DepartFlight.fragments.AvailableFragment">
<android.support.v7.widget.Toolbar
android:id="#+id/available_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentTop="true"
android:background="#drawable/background_toolbar">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageButton
android:id="#+id/toolbar_navigation_btn"
android:layout_width="#dimen/icon_toolbar"
android:layout_height="#dimen/icon_toolbar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:background="#drawable/button_selector"
android:rotation="180"
android:src="#drawable/ic_back"
android:tint="#color/white" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="#+id/text_toolbar_flight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="2dp"
android:textColor="#color/white" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="#+id/toolbar_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#id/text_toolbar_flight"
android:layout_centerHorizontal="true"
android:textColor="#color/white"
android:textSize="#dimen/font_size" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
<include
android:id="#+id/zero_filtered_items"
android:visibility="gone"
layout="#layout/zero_filterd_itesm_row" />
<com.faranegar.bookflight.customView.CustomRecyclerView
android:id="#+id/available_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="#+id/depart_flight_activity_footer"
android:layout_below="#id/available_toolbar"
android:background="#android:color/transparent"
android:visibility="gone"
/>
<com.tuyenmonkey.mkloader.MKLoader
android:id="#+id/progressBar"
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_centerInParent="true"
android:visibility="gone"
app:mk_color="#color/colorPrimary"
app:mk_type="TwinFishesSpinner" />
<RelativeLayout
android:id="#+id/depart_flight_activity_footer"
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_alignParentBottom="true"
android:background="#color/colorPrimary"
android:visibility="visible">
<LinearLayout
android:id="#+id/view_sort"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="18dp"
android:layout_marginStart="18dp"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="#drawable/sort_icon"
android:tint="#color/white" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="#+id/sortText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:text="#string/sort_text"
android:textColor="#color/white"
android:textSize="#dimen/text_less_normal" />
</LinearLayout>
<LinearLayout
android:id="#+id/view_filter"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="18dp"
android:layout_toRightOf="#id/view_sort"
android:gravity="center"
android:orientation="horizontal"
android:visibility="visible">
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="#drawable/ic_filter"
android:tint="#color/white" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="#+id/filterText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:text="#string/filter_text"
android:textColor="#color/white"
android:textSize="#dimen/text_less_normal" />
</LinearLayout>
<RelativeLayout
android:id="#+id/next_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="#+id/back_day">
<Button
android:id="#+id/next_day_available_btn"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background="#drawable/button_selector"
android:textColor="#color/white"
android:textSize="#dimen/icon_btn" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="#+id/next_day_available_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="#id/next_day_available_btn"
android:text="#string/next_day"
android:textColor="#color/white"
android:visibility="visible" />
</RelativeLayout>
<RelativeLayout
android:id="#+id/back_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginLeft="15dp"
android:layout_marginStart="15dp">
<Button
android:id="#+id/prev_day_available_btn"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="#+id/prev_day_available_text"
android:background="#drawable/button_selector"
android:textColor="#color/white"
android:textSize="#dimen/icon_btn" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="#+id/prev_day_available_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="#string/back_day"
android:textColor="#color/white" />
</RelativeLayout>
</RelativeLayout>
<com.faranegar.bookflight.customView.CustomTextView
android:id="#+id/warning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="#string/not_available_flights"
android:textColor="#android:color/black"
android:textSize="16sp"
android:visibility="gone" />
<com.faranegar.bookflight.customView.CustomTextView
android:id="#+id/ads_motto_captan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#id/progressBar"
android:layout_centerInParent="true"
android:padding="15dp"
android:text="#string/captan_ads_motto"
android:textColor="#color/colorPrimary"
android:textSize="16sp"
android:visibility="gone" />
<WebView
android:id="#+id/arzanBelitBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="#+id/depart_flight_activity_footer"
android:visibility="gone" />
<include
android:id="#+id/failedLayout"
layout="#layout/failed_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"
/>
<include
android:id="#+id/saatraapProgressBarLayout"
layout="#layout/saatraap_brogressbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:visibility="gone" />
and a fragment shows the above XML.
what's wrong?
I think setRotation may have confused click() and coordinates calculation. If that's the case, you could either remove android:rotation then rotate the image physically, or try to create a custom click action:
public static ViewAction forceClick() {
return new ViewAction() {
#Override public Matcher<View> getConstraints() {
return allOf(isClickable(), isEnabled());
}
#Override public String getDescription() {
return "force click";
}
#Override public void perform(UiController uiController, View view) {
view.performClick();
uiController.loopMainThreadUntilIdle();
}
};
}
This action performs click on the view by invoking performClick() without finding its coordinates. But make sure the view has the click listener attached in the app:
onView(withId(R.id.toolbar_navigation_btn)).perform(forceClick());
If there's no error then it's safe to assume that the click was successful. Try enabling the "Show taps" Developer option to see exactly where the click occurs.

ListView Background

I have a ListView and it has a Header and Footer. Their layout in CardView. And Content list in which one must be background. Here is a picture which can be clearly seen: I now this is how it turns out:
And how to do:
I did so, ScrollView> first container>listView in second container > third container. But, unfortunately, at the bottom of the container 2 it was a huge empty space!
Is it possible to implement a so-in ListView? if so how, if not then how to implement?
UPDATE
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".Details.Book.BookDetails"
android:background="#color/fragment_bg">
<android.support.v7.widget.Toolbar
android:id="#+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"/>
<View android:layout_width="match_parent"
android:layout_height="3dp"
android:background="#drawable/toolbar_shadow"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="#+id/toolbar"
android:id="#+id/view5" />
<ScrollView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="#+id/scrollView6"
android:layout_below="#+id/toolbar">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="#+id/toolbar">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_below="#+id/toolbar"
android:id="#+id/linearLayout16">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#drawable/rounded_top_layout"
android:paddingBottom="#dimen/leftPadding"
android:paddingLeft="#dimen/rightPadding"
android:paddingRight="#dimen/rightPadding"
android:paddingTop="#dimen/leftPadding">
<TextView
android:id="#+id/textviewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="false"
android:layout_centerVertical="true"
android:text="#string/buy_det_pass_txt"
android:textColor="#color/background_color"
android:textSize="#dimen/mainLargeSize" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/relativeLayout9"
android:paddingBottom="#dimen/leftPadding"
android:paddingLeft="#dimen/rightPadding"
android:paddingRight="#dimen/rightPadding"
android:paddingTop="#dimen/leftPadding">
<LinearLayout
android:id="#+id/linearLayout4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="#+id/relativeLayout9"
android:layout_marginBottom="#dimen/textMargin"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="#string/buy_det_fullname"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainSmallSize" />
<TextView
android:id="#+id/tvFullName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="Medium Text"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainMiddleSize" />
</LinearLayout>
<LinearLayout
android:id="#+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="#+id/linearLayout4"
android:layout_marginBottom="#dimen/textMargin"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="#string/buy_det_gender"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainSmallSize" />
<TextView
android:id="#+id/tvGender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="Medium Text"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainMiddleSize" />
</LinearLayout>
<LinearLayout
android:id="#+id/linearLayout6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="#+id/linearLayout3"
android:layout_marginBottom="#dimen/textMargin"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="#string/buy_det_ticknumber"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainSmallSize" />
<TextView
android:id="#+id/tvTickNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="Medium Text"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainMiddleSize" />
</LinearLayout>
<LinearLayout
android:id="#+id/linearLayout7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="#+id/linearLayout6"
android:layout_marginBottom="#dimen/textMargin"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="#string/buy_det_issdate"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainSmallSize" />
<TextView
android:id="#+id/tvIssDate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="Medium Text"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainMiddleSize" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
<kz.tem_tour.Primer.MainActivity.NonScrollListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/listView"
android:layout_centerHorizontal="true"
android:paddingRight="#dimen/textMargin"
android:paddingLeft="#dimen/textMargin"
android:layout_below="#+id/linearLayout16" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_below="#+id/listView">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#drawable/rounded_top_layout"
android:paddingTop="#dimen/leftPadding"
android:paddingBottom="#dimen/leftPadding"
android:paddingLeft="#dimen/rightPadding"
android:paddingRight="#dimen/rightPadding">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/buy_det_cost_txt"
android:id="#+id/tvFromTo"
android:textColor="#color/background_color"
android:textSize="#dimen/mainLargeSize"
android:layout_alignParentTop="false"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/relativeLayout9"
android:paddingRight="#dimen/rightPadding"
android:paddingLeft="#dimen/rightPadding"
android:paddingTop="#dimen/leftPadding"
android:paddingBottom="#dimen/leftPadding">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/relativeLayout9"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="#+id/linearLayout4"
android:gravity="center_vertical"
android:layout_marginBottom="#dimen/textMargin" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="#string/buy_det_fare"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainSmallSize" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium Text"
android:id="#+id/tvFare"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:gravity="right"
android:textSize="#dimen/mainMiddleSize" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/linearLayout4"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="#+id/linearLayout3"
android:gravity="center_vertical"
android:layout_marginBottom="#dimen/textMargin">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="#string/buy_det_taxes"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainSmallSize" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium Text"
android:id="#+id/tvTaxes"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:gravity="right"
android:textSize="#dimen/mainMiddleSize" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/linearLayout3"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="#+id/linearLayout6"
android:gravity="center_vertical"
android:layout_marginBottom="#dimen/textMargin">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="#string/buy_det_service_fees"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainSmallSize" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium Text"
android:id="#+id/tvFees"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:gravity="right"
android:textSize="#dimen/mainMiddleSize" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/linearLayout6"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="#+id/linearLayout7"
android:gravity="center_vertical"
android:layout_marginBottom="#dimen/textMargin">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="#string/buy_det_total_price"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainSmallSize" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium Text"
android:id="#+id/tvTotPrice"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:gravity="right"
android:textSize="#dimen/mainMiddleSize" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/linearLayout7"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="#+id/linearLayout15"
android:gravity="center_vertical"
android:layout_marginBottom="#dimen/textMargin" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="#string/buy_det_form_of_pay"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:textSize="#dimen/mainSmallSize" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium Text"
android:id="#+id/tvPayment"
android:layout_weight="1"
android:textColor="#color/mainGreyColor"
android:gravity="right"
android:textSize="#dimen/mainMiddleSize" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
I have solution for that.. not healthy one but it should work for you.
Rather then adding header and footer wrap all three layout inside ScrollView.
<ScrollView ... >
<CardView ... /> <!-- this will be header -->
<CardView ...>
<yourpackagename.NonScrollListView ... /> <!-- non scrollable listview -->
</CardView>
<CardView ... /> <!-- this will footer -->
</ScrollView>
Here is the class for NonScrollListView
public class NonScrollListView extends ListView {
public NonScrollListView(Context context) {
super(context);
}
public NonScrollListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NonScrollListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
#Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(
Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom);
ViewGroup.LayoutParams params = getLayoutParams();
params.height = getMeasuredHeight();
}
}
Add listview in CardView and above that cardview add header in different card view and same add footer in cardview under ListView cardview. And add whole layout is scrollview. Calculate height of listview at runtime and add height to listview. Your custom look is ready.
public static void setTotalHeightofListView(ListView listView) {
ListAdapter mAdapter = listView.getAdapter();
int totalHeight = 0;
for (int i = 0; i < mAdapter.getCount(); i++) {
View mView = mAdapter.getView(i, null, listView);
mView.measure(
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
totalHeight += mView.getMeasuredHeight();
Log.w("HEIGHT" + i, String.valueOf(totalHeight));
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (mAdapter.getCount() - 1));
listView.setLayoutParams(params);
listView.requestLayout();
}

list activity onListItemClick does not firing

I nedd to click on items in list activity to do something, but its not working
i search for this problem and saw some answers about this such as :
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
or
android:descendantFocusability="afterDescendants"
android:descendantFocusability="beforeDescendants"
android:descendantFocusability="blocksDescendants"
but those are not worked
this is my listActivity :
public class TrainListActivity extends SherlockListActivity
{
public static String varStart = "com.example.traininfo.startcity";
public static String varDestination = "com.example.traininfo.destinationcity";
private String start;
private String destination;
ArrayList<TrainType> trains;
#Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_trainlist);
Log.i("SearchTrain", "try to get extras...");
start = getIntent().getExtras().getString(varStart);
destination = getIntent().getExtras().getString(varDestination);
TrainController tc = new TrainController(this);
trains = new ArrayList<TrainType>();
trains = tc.getTrainList(start, destination).getTrain();
Log.i("SearchTrain", "got the train list...");
TrainListAdapter adapter = new TrainListAdapter(this, trains);
Log.i("SearchTrain", "adapter initialized successfully!!");
setListAdapter(adapter);
}
#Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
// I want to do something here :(
super.onListItemClick(l, v, position, id);
Log.i("trainList", "on click");
}
}
row xml file :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#27ae60"
android:paddingBottom="5dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:clickable="true" >
<TextView
android:id="#+id/tvTrainName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:gravity="center"
android:text="#string/resultTrainName"
android:textColor="#android:color/white"
android:textSize="20sp"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
android:textStyle="bold" />
<TextView
android:id="#+id/tvStartLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="#id/tvTrainName"
android:gravity="right"
android:text="#string/resultTimeOut"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
android:textColor="#android:color/white"
android:textSize="15sp" />
<TextView
android:id="#+id/tvTimeOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#id/tvTrainName"
android:layout_marginRight="30sp"
android:layout_toLeftOf="#id/tvStartLabel"
android:text="#string/resultTimeOutEx"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
android:textColor="#android:color/white"
android:textSize="15sp" />
<TextView
android:id="#+id/tvFinishLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="#id/tvStartLabel"
android:gravity="right"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
android:text="#string/resultTimeIn"
android:textColor="#android:color/white"
android:textSize="15sp" />
<TextView
android:id="#+id/tvTimeIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="#+id/tvTimeOut"
android:layout_below="#id/tvTimeOut"
android:text="#string/resultTimeInEx"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
android:textColor="#android:color/white"
android:textSize="15sp" />
<TextView
android:id="#+id/tvPrices"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="#id/tvTimeIn"
android:gravity="right"
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
android:textColor="#android:color/white"
android:textSize="15sp" />
<ImageButton
android:id="#+id/btnMoreInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="23dp"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
android:background="#android:color/transparent"
android:contentDescription="#string/resultMoreInfo"
android:src="#drawable/action_info" />
and ListActivity xml File :
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ListView
android:id="#android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:clickable="true"
android:descendantFocusability="afterDescendants" />
</LinearLayout>
please help me :(
Use normal activity and put a ListView in xml. Use inflator to use your custom row design. Just put the focusable=false for your imagebutton. It will allow you to click on the row and you can apply a separate click listener for your imagebutton to handle its click separately.
I faced the same problem not too long ago. It seems that the ImageButton takes focus regardless what you do. What I did was to replace the ImageButton with and ImageView and set the listener to it.
This is how your xml files should look like.
row xml file :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#27ae60"
android:paddingBottom="5dp" >
<TextView
android:id="#+id/tvTrainName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:gravity="center"
android:text="#string/resultTrainName"
android:textColor="#android:color/white"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="#+id/tvStartLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="#id/tvTrainName"
android:gravity="right"
android:text="#string/resultTimeOut"
android:textColor="#android:color/white"
android:textSize="15sp" />
<TextView
android:id="#+id/tvTimeOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#id/tvTrainName"
android:layout_marginRight="30sp"
android:layout_toLeftOf="#id/tvStartLabel"
android:text="#string/resultTimeOutEx"
android:textColor="#android:color/white"
android:textSize="15sp" />
<TextView
android:id="#+id/tvFinishLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="#id/tvStartLabel"
android:gravity="right"
android:text="#string/resultTimeIn"
android:textColor="#android:color/white"
android:textSize="15sp" />
<TextView
android:id="#+id/tvTimeIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="#+id/tvTimeOut"
android:layout_below="#id/tvTimeOut"
android:text="#string/resultTimeInEx"
android:textColor="#android:color/white"
android:textSize="15sp" />
<TextView
android:id="#+id/tvPrices"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="#id/tvTimeIn"
android:gravity="right"
android:textColor="#android:color/white"
android:textSize="15sp" />
<ImageView
android:id="#+id/btnMoreInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="23dp"
android:background="#android:color/transparent"
android:contentDescription="#string/resultMoreInfo"
android:src="#drawable/action_info" />
Activity xml.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ListView
android:id="#android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"/>
</LinearLayout>

How to make the popup window BG blur

In my app I am using popup window it looks like this, But the background for the popup window is not blur, how do I make it appear blur.
Here is the code,
View v1 = inflatter.inflate(R.layout.problemlistmenu_popup, null);
v1.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
int height1 = v1.getMeasuredHeight();
clickOnProblemName = new PopupWindow(showProblemMenu(details), (int) (width * 0.8), height1, true);
clickOnProblemName.showAtLocation(mainlayout, Gravity.CENTER, 0, 0);
showProblemMenu
protected View showProblemMenu(String details) {
View v = null;
v = inflatter.inflate(R.layout.problemlistmenu_popup, null);
return v;
}
And here is the xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="#+id/mainlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#color/silver002"
android:orientation="vertical" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="#drawable/headerstyle1" >
<TextView
android:id="#+id/tvHeaderText"
android:layout_width="match_parent"
android:layout_height="30dp"
android:gravity="left|center_vertical"
android:paddingLeft="5dp"
android:text=""
android:textColor="#android:color/white"
android:textSize="12dp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="30dp"
android:layout_marginTop="4dp"
android:gravity="right|center_vertical" >
<TextView
android:id="#+id/tvCancel"
android:layout_marginRight="3dp"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:layout_marginTop="2dp"
android:background="#drawable/backgroundstyle_btn1"
android:layout_gravity="right"
android:text="Cancel"
android:gravity="center"
android:textColor="#android:color/white"
android:textSize="14dp"
android:textStyle="bold" />
</LinearLayout>
</FrameLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="5dp"
android:orientation="vertical" >
<TextView
android:id="#+id/tvChronic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:padding="10dp"
android:textColor="#android:color/black"
android:text=""
android:textStyle="bold"
android:background="#drawable/row_selector"
android:textSize="14dp" />
<TextView
android:id="#+id/tvResolved"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:padding="10dp"
android:text="Change to Resolved"
android:textStyle="bold"
android:background="#drawable/row_selector_alternative"
android:textColor="#android:color/black"
android:textSize="14dp" />
<TextView
android:id="#+id/tvProblemName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:padding="10dp"
android:text="Edit Problem Name"
android:textStyle="bold"
android:background="#drawable/row_selector"
android:textColor="#android:color/black"
android:textSize="14dp" />
<TextView
android:id="#+id/tvComments"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:padding="10dp"
android:text="Edit Comments"
android:textStyle="bold"
android:background="#drawable/row_selector_alternative"
android:textColor="#android:color/black"
android:textSize="14dp" />
</LinearLayout>
</ScrollView>
</LinearLayout>
Thanks in advance.
There is a really good tutorial here that shows you how to do this:
http://www.stealthcopter.com/blog/2010/01/android-blurring-and-dimming-background-windows-from-dialogs/
May this help
mPopupWindow.setTouchable(true);
mPopupWindow.setFocusable(false);
mPopupWindow.setOutsideTouchable(false);

Categories