Android:如何在按下后隐藏键盘时使布局可见?

时间:2012-06-14 06:38:35

标签: android android-layout keyboard

我使用alignParentBottom="true"的线性布局和具有相同属性但在线性布局上方对齐的相对布局。我已经放置了一个编辑文本。聚焦edittext时会显示键盘。在显示键盘的那个时候,底部线性布局隐藏了edittext。用户将无法看到编辑文本中输入的内容。

现在,我通过在显示键盘时设置活动的可见性来隐藏底部线性布局。编辑文本的OnFocusChanged,我正在使底部线性布局可见。但是,如何在按下时隐藏键盘时如何使布局可见?

在Manifest.xml中,我使用以下代码进行活动:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    android:id="@+id/relativetop"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingTop="5dp" >

    <Button
        android:id="@+id/mymenu"
        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/top_arrow_r_click" />

    <RelativeLayout
        android:id="@+id/rel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginBottom="5dp"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="5dp"
        android:layout_toRightOf="@+id/mymenu"
        android:background="@drawable/sera" >

        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toLeftOf="@+id/search"
            android:layout_toRightOf="@+id/textView1"
            android:ems="10"
            android:paddingLeft="15dp"
            android:paddingRight="10dp"
            android:singleLine="true" >
        </EditText>

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

        <Button
            android:id="@+id/search"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:background="@drawable/search_icon_click" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/of" />
    </RelativeLayout>
</RelativeLayout>

<RelativeLayout
     android:id="@+id/relativecent1"
     android:layout_above="@+id/linearbottom"
     android:layout_below="@+id/relativetop"
     android:layout_marginLeft="10dp"
     android:layout_width="wrap_content"
     android:layout_height="fill_parent"
     android:layout_marginRight="10dp"
 >

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="2dp"
    android:maxLines="2"
    android:textSize="12dp"
    android:text="Pay Just Rs 4999 and get a Professional Fashion Portfolio with Make up worth "
    android:textColor="#2d3438" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="80dp"
    android:layout_height="60dp"
    android:layout_alignLeft="@+id/textView2"
    android:layout_below="@+id/textView2"
    android:scaleType="fitXY"
    android:background="@drawable/nor_bg"
    android:src="@drawable/loading" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/imageView1"
    android:layout_marginLeft="5dp"
    android:layout_toRightOf="@+id/imageView1"
    android:text="$ 299"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#be2e33"
    android:textStyle="bold" />

<LinearLayout
    android:id="@+id/updown"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView3"
    android:layout_below="@+id/textView3"
    android:layout_marginRight="15dp"
    android:weightSum="1"
    android:layout_toLeftOf="@+id/button1"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/up"
        android:layout_width="0dip"
        android:layout_height="25dp"
        android:layout_weight="0.5"
        android:background="@drawable/like_click" />

    <Button
        android:id="@+id/down"
        android:layout_width="0dip"
        android:layout_height="25dp"
        android:layout_toRightOf="@+id/up"
        android:layout_weight="0.5"
        android:background="@drawable/unlike_click" />
</LinearLayout>

<LinearLayout
    android:id="@+id/updowncount"
     android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView3"
    android:layout_below="@+id/updown"
    android:layout_marginRight="15dp"
    android:weightSum="1"
    android:layout_toLeftOf="@+id/button1"
    android:orientation="horizontal" 
    >

    <TextView
        android:id="@+id/upcount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:gravity="center"
        android:text="6" />

    <TextView
        android:id="@+id/downcount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:gravity="center"
        android:text="0" />
</LinearLayout>

<TextView
    android:id="@+id/textView5"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/textView2"
    android:layout_alignTop="@+id/textView3"
    android:layout_marginLeft="5dp"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:singleLine="true"
    android:text="Times Deals"
    android:textSize="12dp"
    android:textColor="#3b84c4" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/textView5"
    android:layout_toLeftOf="@+id/textView5"
    android:text="At"
    android:textSize="12dp"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView4"
    android:layout_toLeftOf="@+id/textView4"
    android:background="@drawable/wallet_click" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button1"
    android:layout_below="@+id/button1"
    android:layout_marginTop="2dp"
    android:background="@drawable/map_click"
    android:visibility="invisible" />

<TextView
    android:id="@+id/textView7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView6"
    android:layout_alignLeft="@+id/textView6"
    android:layout_toRightOf="@+id/button2"
    android:layout_alignBottom="@+id/imageView1"
    android:text="Show on Map"
    android:textSize="12dp"
    android:gravity="center"
    android:paddingTop="5dp"
     android:textColor="#3b84c4" 
    android:visibility="invisible" />

<TextView
    android:id="@+id/textView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button1"
    android:layout_alignLeft="@+id/textView4"
    android:text="Add to Wallet"
    android:textSize="12dp"
    android:layout_marginBottom="3dp"
    android:layout_marginLeft="5dp"
    android:textColor="#3b84c4" />

<RelativeLayout

    android:id="@+id/relativedetail"
     android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_below="@+id/relativecenter"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

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

    <!-- DETAILS -->
    <ScrollView
     android:id="@+id/scrolview"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_below="@+id/line"
     android:visibility="visible"
     android:layout_margin="5dp" >


         <TextView
             android:id="@+id/detailsText"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:text="lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit amet lorem ipsum dolor sit ametttt"
             android:textColor="#2d3438"
             android:visibility="visible" />

    <!-- REVIEW -->
    <ScrollView android:id="@+id/relativereview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/linearbottom"
     android:layout_alignParentLeft="true"
     android:layout_below="@+id/line"

        >
<RelativeLayout

     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_margin="5dp"  
    >
    <EditText
        android:id="@+id/postreview" 
        android:ems="10"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:gravity="top|left"
        android:background="@drawable/round_corner_edittext"
        android:inputType="textMultiLine"
        android:layout_width="fill_parent" 
        android:layout_height="60dp" 
        android:textSize="12dp"
        android:layout_margin="2dp" >
        </EditText>
      <Button
             android:id="@+id/post"
             android:layout_below="@+id/postreview"
             android:background="@drawable/apply_click"
             android:layout_alignRight="@+id/postreview"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textColor="#ffffff"
             android:paddingRight="35dp"
             android:paddingLeft="5dp"
             android:text="Post Review" />



</RelativeLayout>
</ScrollView>
<RelativeLayout
    android:id="@+id/rlist"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_below="@+id/relativereview"
     >
     <ListView
                 android:layout_below="@+id/post"
                 android:id="@+id/listreview"
             android:cacheColorHint="#00000000"
             android:listSelector="#00000000"
             android:divider="#00000000"
             android:background="#00000000"
             android:dividerHeight="1dp"
             android:layout_width="wrap_content"
             android:layout_height="fill_parent"
             android:layout_marginRight="5dp"
             android:layout_marginTop="5dp" 
                      />
</RelativeLayout>
   
    <RelativeLayout
        android:visibility="invisible"
          android:layout_below="@+id/line" 
         android:id="@+id/relativedetails_layout"
           android:layout_alignParentBottom="true"
             android:layout_alignParentLeft="true"
             android:layout_margin="5dp"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent" >

        <ImageView
             android:id="@+id/imageView2"
             android:layout_width="120dp"
             android:layout_height="90dp"
             android:scaleType="fitXY"
             android:layout_alignLeft="@+id/detailsText"
             android:layout_alignTop="@+id/detailsText"
             android:src="@drawable/reliance_logo" />
         <!-- android:background="@drawable/round_corner_category_listing_page" -->

         <TextView
             android:id="@+id/textView8"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignTop="@+id/detailsText"
             android:layout_margin="5dp"
             android:layout_toRightOf="@+id/imageView2"
             android:text="Reliance Fresh"
             android:textColor="#000000"
             android:textStyle="bold" />


         <ListView
             android:id="@+id/ListViewMalls"
             android:cacheColorHint="#00000000"
             android:listSelector="@drawable/deals_details_bg"
             android:divider="#00000000"
             android:dividerHeight="1dp"
             android:layout_width="wrap_content"
             android:layout_height="fill_parent"
             android:layout_alignLeft="@+id/textView8"
             android:layout_below="@+id/textView8"
             android:layout_marginRight="5dp"
             android:layout_marginTop="5dp" />

         <TextView
             android:id="@+id/textView14"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_below="@+id/imageView2"
             android:layout_alignLeft="@+id/imageView2"
             android:layout_marginTop="10dp"
             android:background="@drawable/bagg" />


         <TextView
             android:id="@+id/textView15"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignRight="@+id/imageView2"
             android:layout_alignTop="@+id/textView14"
             android:layout_toRightOf="@+id/textView14"
             android:text="More deals from"
             android:focusable="true"
             android:focusableInTouchMode="true"
             android:marqueeRepeatLimit="marquee_forever"
             android:ellipsize="marquee"
             android:scrollHorizontally="true"
             android:layout_toLeftOf="@+id/ListViewMalls"
             android:textSize="10dp"
             android:layout_marginLeft="5dp"
             android:textColor="#3b84c4" />

         <TextView
             android:id="@+id/textView16"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignLeft="@+id/textView15"
             android:layout_below="@+id/textView15"
              android:textColor="#000000"
             android:text="Reliance Fresh"
              android:textSize="12dp"
               android:marqueeRepeatLimit="marquee_forever"
             android:ellipsize="marquee"
             android:scrollHorizontally="true"
             />

     </RelativeLayout>
     <LinearLayout
        android:id="@+id/line"
        android:layout_alignParentTop="true"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_margin="1dp"
        android:weightSum="3" >

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

        <Button
            android:id="@+id/details"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="2dp"
            android:layout_weight="1"
             android:textColor="#ffffff"
            android:text="Details"
            android:textAppearance="?android:attr/textAppearanceSmall"
            />
          <!-- android:background="@drawable/round_corner_button_sort" -->

        <Button
            android:id="@+id/store"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="2dp"
            android:layout_marginRight="2dp"
            android:layout_weight="1"
            android:background="#00000000"
            android:text="Store"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="#000000" />

        <Button
            android:id="@+id/review"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="2dp"
             android:textColor="#000000"
             android:background="#00000000"
            android:layout_weight="1"
            android:text="Review"
            android:textAppearance="?android:attr/textAppearanceSmall"
            />

    </LinearLayout>


</RelativeLayout>

</RelativeLayout>

<LinearLayout
    android:id="@+id/linearbottom"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/linebg"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal"
    android:gravity="center_vertical"
    android:weightSum="5" >

    <LinearLayout
        android:id="@+id/linearmap"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:weightSum="2" >

        <Button
            android:id="@+id/map"
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:background="@drawable/map_norm"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/textMap"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Map"
            android:textColor="#000000" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/lineartrends"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:weightSum="2" >



        <Button
            android:id="@+id/trends"
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:background="@drawable/trends_nor"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/textTrends"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Trends"
            android:textColor="#000000" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearwatch"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:weightSum="2" >

        <Button
            android:id="@+id/watch"
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:background="@drawable/watch_nor"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/textWatch"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Watch"
            android:textColor="#000000" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearcontrol"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:weightSum="2" >

        <Button
            android:id="@+id/control"
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:background="@drawable/control_nor"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/textControl"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Control"
            android:textColor="#000000" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearme"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:weightSum="2" >

        <Button
            android:id="@+id/me"
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:background="@drawable/me_nor"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/textMe"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Me"
            android:textColor="#000000" />
    </LinearLayout>
</LinearLayout>


</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

您可以使用onBackPressed,但问题是您将无法检测键盘是否显示。实际上,如果你要检查你的布局是不可见的,那么可能意味着显示了键盘,而在onBackPressed中你可以再次看到它,那就是它。

答案 1 :(得分:1)

你在这里提出的代码非常混乱,所以我只关注你提出的问题。 覆盖onBackPressed方法。在那个,你想要显示哪个布局,使用setVisible方法并将其设置为true并隐藏键盘: -

InputMethodManager imm = (InputMethodManager) Login.this.getSystemService(android.content.Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(Login.this.getCurrentFocus().getWindowToken(), 0);

或者如果您想查看由于键盘而当前被隐藏的edittext,您可以向上移动视图。 Android默认提供此功能 例如: - 在我的登录活动中,当键盘出现时我的密码edittext向上移动,我能够看到我正在键入的内容。