Android:滚动视图中不可见的按钮

时间:2015-03-05 02:48:21

标签: java android xml android-layout scrollview

我正在制作一个Android应用程序来输入用户信息,因为我有两个按钮和数字选择器,我的按钮是自定义的,并且没有在Android工作室的预览中显示也不在模拟器中

这是我的代码

<ScrollView
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  tools:context="com.app.tarun.dc2.Fragments.AddressFragment">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:orientation="vertical"
        >


        <!--Layout for Buttons-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal"
            >


            <com.app.tarun.dc2.CustomViews.SquareLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_margin="25dp"
                android:layout_weight="1">

                <ImageButton
                    android:src="@drawable/ic_add"
                    android:id="@+id/medicineEditAddButton"
                    android:scaleType="fitCenter"
                    android:padding="20dp"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@drawable/green_button_style"/>


            </com.app.tarun.dc2.CustomViews.SquareLayout>

            <NumberPicker
                android:layout_width="0dp"
                android:id="@+id/medicineEditNumberPicker"
                android:layout_height="wrap_content"
                android:layout_weight="1">

            </NumberPicker>

            <com.app.tarun.dc2.CustomViews.SquareLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_margin="25dp"
                android:layout_weight="1">

                <ImageButton
                    android:src="@drawable/ic_continue"
                    android:id="@+id/medicineEditContinueButton"
                    android:scaleType="fitCenter"
                    android:padding="20dp"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@drawable/yellow_button_style"/>


            </com.app.tarun.dc2.CustomViews.SquareLayout>

        </LinearLayout>


<!--Horizontal Linear Layout for EDITTEXT-->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="First Name"
        android:inputType="text"
        android:layout_marginTop="25dp"/>


    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:hint="Last Name"
        android:inputType="text"
        android:layout_marginTop="25dp"/>


</LinearLayout>
<!--Horizontal Linear Layout for EDITTEXT end here(First name and last name-->
</LinearLayout></ScrollView>

4 个答案:

答案 0 :(得分:0)

尝试在布局中包含滚动视图。以下是我为自己的项目取得的成就:

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.com.atr.LoginActivity" >

    <ScrollView
         android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:id="@+id/txthello"></TextView>

    <EditText
        android:id="@+id/txtApp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/txthello"
        android:layout_marginTop="18dp"
        android:hint="Enter Application Code"/>

      <EditText
        android:id="@+id/txtModuleId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/txtApp"
        android:layout_marginTop="18dp"
        android:hint="Enter Module Id"/>

         <EditText
        android:id="@+id/txtModuleCode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/txtModuleId"
        android:layout_marginTop="18dp"
        android:hint="Enter Module Code"/>

           <EditText
        android:id="@+id/txtModuleType"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/txtModuleCode"
        android:layout_marginTop="18dp"
        android:hint="Enter Module Type"/>
          <EditText
        android:id="@+id/txtSubModuleId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/txtModuleType"
        android:layout_marginTop="18dp"
        android:hint="Enter Sub Module Id"/>

      <EditText
        android:id="@+id/txtSubModuleCode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/txtSubModuleId"
        android:layout_marginTop="18dp"
        android:hint="Enter Sub Module Code"/>

       <EditText
        android:id="@+id/txtUserId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/txtSubModuleCode"
        android:layout_marginTop="18dp"
        android:hint="Enter User Id"/>

         <EditText
        android:id="@+id/txtDateFrom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/txtUserId"
        android:layout_marginTop="18dp"
        android:hint="From Date (mmm-dd-yyyy)"/>

           <EditText
        android:id="@+id/txtDateTo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_below="@+id/txtDateFrom"
        android:layout_marginTop="18dp"
        android:hint="To Date (mmm-dd-yyyy)"/>

            <Button
        android:id="@+id/btnCallService"
        android:layout_width="80dp"
        android:layout_height="45dp"

        android:layout_below="@+id/txtDateTo"
        android:layout_toRightOf="@+id/txtDateTo"
        android:layout_marginTop="18dp"

        android:layout_alignParentLeft="true"
        android:text="Send"/>
  </RelativeLayout>
    </ScrollView>
</RelativeLayout>

只是为了给你一个基本的想法:)

答案 1 :(得分:0)

根据您的需要,将自定义布局的宽度从 0dp更改为wrap content / match_parent 。我认为这可以解决你的问题。我在下面编辑了你的布局。

<com.app.tarun.dc2.CustomViews.SquareLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_margin="25dp"
            android:layout_weight="1">

            <ImageButton
                android:src="@drawable/ic_add"
                android:id="@+id/medicineEditAddButton"
                android:scaleType="fitCenter"
                android:padding="20dp"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/green_button_style"/>


        </com.app.tarun.dc2.CustomViews.SquareLayout>

        <NumberPicker
            android:layout_width="wrap_content"
            android:id="@+id/medicineEditNumberPicker"
            android:layout_height="wrap_content"
            android:layout_weight="1">

        </NumberPicker>

        <com.app.tarun.dc2.CustomViews.SquareLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_margin="25dp"
            android:layout_weight="1">

            <ImageButton
                android:src="@drawable/ic_continue"
                android:id="@+id/medicineEditContinueButton"
                android:scaleType="fitCenter"
                android:padding="20dp"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/yellow_button_style"/>


        </com.app.tarun.dc2.CustomViews.SquareLayout>

答案 2 :(得分:0)

在你的第一个LinearLayout上添加一个android:weightSum =“[any int]”

答案 3 :(得分:0)

ScrollView是一个FrameLayout,意思是you should place one child,其中包含要滚动的全部内容;这个孩子本身可能是一个具有复杂的对象层次结构的布局管理器。

所以在这里你必须采用LinearLayout或RelativeLayout然后你必须放置不同的组件层次结构。

<ScrollView android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.app.tarun.dc2.Fragments.AddressFragment">

<LinearLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    >


    <!--Layout for Buttons-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        >


        <com.app.tarun.dc2.CustomViews.SquareLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="25dp"
            android:layout_weight="1">

            <ImageButton
                android:src="@drawable/ic_add"
                android:id="@+id/medicineEditAddButton"
                android:scaleType="fitCenter"
                android:padding="20dp"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/green_button_style"/>


        </com.app.tarun.dc2.CustomViews.SquareLayout>

        <NumberPicker
            android:layout_width="0dp"
            android:id="@+id/medicineEditNumberPicker"
            android:layout_height="wrap_content"
            android:layout_weight="1">

        </NumberPicker>

        <com.app.tarun.dc2.CustomViews.SquareLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="25dp"
            android:layout_weight="1">

            <ImageButton
                android:src="@drawable/ic_continue"
                android:id="@+id/medicineEditContinueButton"
                android:scaleType="fitCenter"
                android:padding="20dp"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/yellow_button_style"/>


        </com.app.tarun.dc2.CustomViews.SquareLayout>

    </LinearLayout>


<!--Horizontal Linear Layout for EDITTEXT-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

   <EditText
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:hint="First Name"
       android:inputType="text"
       android:layout_marginTop="25dp"/>


   <EditText
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:hint="Last Name"
       android:inputType="text"
      android:layout_marginTop="25dp"/>


</LinearLayout>
<!--Horizontal Linear Layout for EDITTEXT end here(First name and last name-->

</LinearLayout>

</LinearLayout></ScrollView>

希望这段代码适合你。

您还可以访问此ScrollView