在设计的界面中,上部为title栏, 下部为二个按钮的docor底部栏,中间为FrameLayout, 包含listview和rulerview。
上部和下部的高度为wrap_content, 中间为fill_parent,设置android:layout_weight="1"(不设该属性无法显示底部栏)。这样设计后,貌似一切都很正常,但问题就出现了。
listView设onscrollListener,在onscroll函数中打印日志,发现onscroll不断被调用,调试后发现是由于onlayout消息导致onscroll事件。该问题产生另一个问题,在listview添加EditText到headerView中,点击EditText无法弹出输入法。请问如何解决该问题?
具体布局如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/contactpanel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- titel -->
<LinearLayout
android:id="@+id/layout_topbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_topbar"
>
<TextView android:id="@+id/panel_title"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="8dip"
android:textColor="#ffffff"
android:textSize="20sp"
android:layout_marginLeft="10dip"
/>
</LinearLayout>
<!-- content -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="vertical" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadingEdge="none"
android:clickable="true"
android:divider="#33000000"
android:dividerHeight="1px"
android:cacheColorHint="#00000000"
android:background="#FFFFFF"
/>
<RulerView
android:id="@+id/ruler"
android:layout_width="28dip"
android:layout_height="0dip"
android:layout_gravity="right"
android:layout_weight="1.0"
android:layout_marginRight="0dip"
android:layout_marginTop="5dip"
android:paddingLeft="6dip"
android:paddingRight="7dip"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:background="@drawable/ruler_bg"
/>
</FrameLayout>
</LinearLayout>
<!-- docor -->
<LinearLayout android="@+id/docor"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/ok"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_weight="1"
android:text="ok"
/>
<Button android:id="@+id/cancel"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_weight="1"
android:text="cancel"
/>
</LinearLayout>
</LinearLayout>
上部和下部的高度为wrap_content, 中间为fill_parent,设置android:layout_weight="1"(不设该属性无法显示底部栏)。这样设计后,貌似一切都很正常,但问题就出现了。
listView设onscrollListener,在onscroll函数中打印日志,发现onscroll不断被调用,调试后发现是由于onlayout消息导致onscroll事件。该问题产生另一个问题,在listview添加EditText到headerView中,点击EditText无法弹出输入法。请问如何解决该问题?
具体布局如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/contactpanel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- titel -->
<LinearLayout
android:id="@+id/layout_topbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_topbar"
>
<TextView android:id="@+id/panel_title"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="8dip"
android:textColor="#ffffff"
android:textSize="20sp"
android:layout_marginLeft="10dip"
/>
</LinearLayout>
<!-- content -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="vertical" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadingEdge="none"
android:clickable="true"
android:divider="#33000000"
android:dividerHeight="1px"
android:cacheColorHint="#00000000"
android:background="#FFFFFF"
/>
<RulerView
android:id="@+id/ruler"
android:layout_width="28dip"
android:layout_height="0dip"
android:layout_gravity="right"
android:layout_weight="1.0"
android:layout_marginRight="0dip"
android:layout_marginTop="5dip"
android:paddingLeft="6dip"
android:paddingRight="7dip"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:background="@drawable/ruler_bg"
/>
</FrameLayout>
</LinearLayout>
<!-- docor -->
<LinearLayout android="@+id/docor"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/ok"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_weight="1"
android:text="ok"
/>
<Button android:id="@+id/cancel"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_weight="1"
android:text="cancel"
/>
</LinearLayout>
</LinearLayout>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货