Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使listview和table可滚动的屏幕?_Android_Sup - Fatal编程技术网

Android 如何使listview和table可滚动的屏幕?

Android 如何使listview和table可滚动的屏幕?,android,sup,Android,Sup,我是android新手。当我尝试使屏幕可滚动时,屏幕会变得可滚动,但内容不会显示。屏幕包含一个listview和另一个tableview。这是我正在使用的代码 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" and

我是android新手。当我尝试使屏幕可滚动时,屏幕会变得可滚动,但内容不会显示。屏幕包含一个listview和另一个tableview。这是我正在使用的代码

     <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:stretchColumns="1"
android:scrollbars="vertical"
android:isScrollContainer="true"
android:scrollbarAlwaysDrawVerticalTrack="true">




     <TableLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="70dp"  android:layout_marginRight="3dp" 
  >
   <TableRow android:layout_width="wrap_content"  android:layout_marginTop="5dp" > 
    <ImageView
    android:id="@+id/logo"
    android:layout_width="90dp"
    android:layout_height="90dp"
    android:src="@drawable/logo"
    android:layout_marginLeft="3dp"

    />
    <ImageView
    android:id="@+id/back"
    android:layout_width="30dp"
    android:layout_height="40dp"
    android:src="@drawable/back"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="20dp"
    />

    <ImageView
        android:id="@+id/timesheet"
        android:layout_width="90dp"
        android:layout_height="70dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="1dp"
        android:src="@drawable/timesheet" />

     <ImageView
    android:id="@+id/home"
    android:layout_width="35dp"
    android:layout_height="50dp"
    android:src="@drawable/home"
     android:layout_marginTop="17dp"
     android:layout_marginLeft="25dp"
    android:layout_marginRight="20dp"

    />
    </TableRow>

  </TableLayout>


     <TableLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_marginTop="70dp" android:layout_marginLeft="5dp" android:layout_marginRight="8dp" 
  >

    <TableRow android:layout_width="70dp" android:layout_height="100dp"  android:layout_marginTop="10dp" android:background="#000000" > 
         <TextView
        android:text="Timesheets for Approval"
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:textSize="18dp"
        android:layout_marginTop="3dp"
        android:textColor="#ffff"
        android:layout_marginLeft="70dp"
       />      
    </TableRow>  
    </TableLayout>  


 <ListView android:layout_width="wrap_content" 
     android:id="@+id/listView1"
     android:layout_height="wrap_content"
     android:layout_marginTop="120dp"
     android:layout_marginLeft="5dp"
     android:layout_marginRight="8dp"
            />

 <TableLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/tableLayout1"  android:layout_marginTop="415dp" android:layout_marginLeft="5dp" android:layout_marginRight="8dp"  android:layout_width="400dp" android:layout_height="170dp" 
  android:stretchColumns="*"
  android:background="@drawable/shape">

        <TableRow android:layout_width="fill_parent"   android:layout_marginTop="2dp" android:layout_marginLeft="5dp" android:layout_marginRight="8dp" >   
             <TextView
        android:text="Timesheet Details"
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        />      

         </TableRow>

    <TableRow android:layout_width="fill_parent"  android:layout_marginLeft="1dp">   
        <TextView
        android:text="Emp Name"
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="13dp"

        />        
        <EditText android:text="EditText" android:id="@+id/emp_name" android:enabled="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="13dp"
            ></EditText>
        <EditText android:text="EditText" android:id="@+id/emp_code" android:enabled="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="13dp"
            ></EditText>
    </TableRow>
    <TableRow android:layout_width="fill_parent" android:layout_marginLeft="1dp">

       <TextView
        android:text="From  Date"
        android:id="@id/textView1"  
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="13dp"

       />        
        <EditText android:text="EditText" android:id="@+id/from_date" android:enabled="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="13dp"
            ></EditText>
    </TableRow>
    <TableRow android:layout_width="fill_parent" android:layout_marginLeft="1dp">
        <TextView
          android:text="To Date"
          android:id="@id/textView1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textSize="13dp"

          />    
         <EditText android:text="EditText" android:id="@+id/to_date" android:enabled="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="13dp"
             ></EditText>
    </TableRow>
     <TableRow android:layout_width="fill_parent"  android:layout_marginLeft="1dp">
        <TextView
          android:text="Target Hrs"
          android:id="@id/textView1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textSize="13dp"

         />  
          <EditText android:text="EditText" android:id="@+id/target_hours" android:enabled="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="13dp"
              ></EditText>
        <TextView
          android:text="Actual Hrs"
          android:id="@id/textView1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textSize="13dp"

          />   
          <EditText android:text="EditText" android:id="@+id/actual_hours" android:enabled="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="13dp"
              ></EditText>
    </TableRow>

</TableLayout>
<TableLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/tableLayout1"  android:layout_marginTop="600dp" android:layout_marginLeft="1dp"  android:layout_width="400dp" android:layout_height="wrap_content" 
  >

    <TableRow android:layout_width="fill_parent" android:layout_marginLeft="1dp">
 <Button android:id="@+id/approve" android:layout_width="wrap_content" android:layout_height="22dp" android:background = "@drawable/approve" android:textColor="#ffff" android:layout_marginLeft="30dp" ></Button>
 <Button  android:id="@+id/reject" android:layout_width="wrap_content" android:layout_height="22dp" android:background = "@drawable/reject" android:textColor="#ffff" android:layout_marginLeft="50dp" android:layout_marginRight="20dp" ></Button>
 <Button  android:id="@+id/detail" android:layout_width="wrap_content" android:layout_height="22dp" android:background = "@drawable/details" android:textColor="#ffff" android:layout_marginLeft="30dp" android:layout_marginRight="30dp"></Button>

</TableRow>

</TableLayout>

</LinearLayout>
</ScrollView>

您可以将列表视图上方的两个
表格布局
添加为列表视图的
标题视图
,将列表视图下方的两个
表格布局
添加为列表视图的
页脚视图

大概是这样的:

标题视图:

ListView.addHeaderView(HeaderView);
ListView.addFooterView(FooterView);
页脚视图:

ListView.addHeaderView(HeaderView);
ListView.addFooterView(FooterView);

删除
滚动视图
。现在,您的布局将与列表一起滚动,而不带任何
滚动视图

您可以将列表视图上方的两个
表格布局
添加为
列表视图的
标题视图
,将列表视图下方的两个
表格布局
添加为列表视图的
页脚视图

大概是这样的:

标题视图:

ListView.addHeaderView(HeaderView);
ListView.addFooterView(FooterView);
页脚视图:

ListView.addHeaderView(HeaderView);
ListView.addFooterView(FooterView);

删除
滚动视图
。现在,您的布局将与列表一起滚动,而没有任何
滚动视图

您不能在
滚动视图
中使用
列表视图
,除非您实现自己的
滚动视图
并处理触摸事件

我看到您希望整个页面都可以滚动,这样当您向下滚动时,表格最终将退出屏幕。要实现这一点,您需要

  • 删除滚动视图
  • 将表放在另一个xml文件中
  • 在listview上使用
    addHeaderView(视图v)
    方法,并将表添加到listview中

    listview.addeaderView(tableView);
    

  • 除非实现自己的
    滚动视图
    并处理触摸事件,否则不能在
    滚动视图
    中使用
    列表视图

    我看到您希望整个页面都可以滚动,这样当您向下滚动时,表格最终将退出屏幕。要实现这一点,您需要

  • 删除滚动视图
  • 将表放在另一个xml文件中
  • 在listview上使用
    addHeaderView(视图v)
    方法,并将表添加到listview中

    listview.addeaderView(tableView);
    

  • 根据UI指南和最佳实践,建议不要在Scrollview中使用可滚动内容,这样做可以防止可滚动内容的滚动

    当你放置两个scrollview时,android会搞不清楚哪个scrollview被触动了。因此,有时它无法传递触摸事件

    但是,如果仍然想要实现滚动功能,可以使用特定视图的onTouch事件来管理它。您需要相应地设计布局

    但即使需求迫使您进行这样的布局。试试这个

    比如说案例有点像这样

      <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"
            tools:context=".MainActivity" >
    
    <ScrollView
        android:id="@+id/svssvMain"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true" >
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
    
            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="20sp"
                android:layout_margin="10dp"
                android:text="@string/tv_content"/>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <ListView 
                android:id="@+id/svslvMain"
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:cacheColorHint="#00000000"/>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="20sp"
                android:layout_margin="10dp"
                android:text="@string/tv_content"/>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <ScrollView 
                android:id="@+id/svssvchild"
                android:layout_width="fill_parent"
                android:layout_height="100dp">
    
                <TextView 
                    android:id="@+id/svstvContent"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:textSize="20sp"
                    android:layout_margin="10dp"
                    android:text="@string/lipsum"/>
            </ScrollView>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="20sp"
                android:layout_margin="10dp"
                android:text="@string/tv_content"/>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <ImageView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/android"/>
        </LinearLayout>
    </ScrollView>
    
    步骤3:现在为
    列表视图
    滚动视图
    设置触摸监听器


    我希望它能帮助你

    根据UI指南和最佳实践,建议不要在Scrollview中使用可滚动内容,这样做可以防止可滚动内容的滚动

    当你放置两个scrollview时,android会搞不清楚哪个scrollview被触动了。因此,有时它无法传递触摸事件

    但是,如果仍然想要实现滚动功能,可以使用特定视图的onTouch事件来管理它。您需要相应地设计布局

    但即使需求迫使您进行这样的布局。试试这个

    比如说案例有点像这样

      <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"
            tools:context=".MainActivity" >
    
    <ScrollView
        android:id="@+id/svssvMain"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true" >
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
    
            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="20sp"
                android:layout_margin="10dp"
                android:text="@string/tv_content"/>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <ListView 
                android:id="@+id/svslvMain"
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:cacheColorHint="#00000000"/>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="20sp"
                android:layout_margin="10dp"
                android:text="@string/tv_content"/>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <ScrollView 
                android:id="@+id/svssvchild"
                android:layout_width="fill_parent"
                android:layout_height="100dp">
    
                <TextView 
                    android:id="@+id/svstvContent"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:textSize="20sp"
                    android:layout_margin="10dp"
                    android:text="@string/lipsum"/>
            </ScrollView>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="20sp"
                android:layout_margin="10dp"
                android:text="@string/tv_content"/>
            <View 
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@android:color/black"/>
            <ImageView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/android"/>
        </LinearLayout>
    </ScrollView>
    
    步骤3:现在为
    列表视图
    滚动视图
    设置触摸监听器


    我希望它能帮助你

    将线性布局的方向设置为垂直

    android:orientation="vertical"
    
    移除

    xmlns:android="http://schemas.android.com/apk/res/android"
    
    从主滚动视图以外的其他布局

    将listView包装到另一个线性布局中,并为其指定高度。 使用scrollView时,为什么要添加

    android:stretchColumns="1"
    android:scrollbars="vertical"
    android:isScrollContainer="true"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    
    到您的线性布局。将线性布局修改为:

    <LinearLayout
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:orientation="vertical">
    

    将线性布局的方向设置为垂直

    android:orientation="vertical"
    
    移除

    xmlns:android="http://schemas.android.com/apk/res/android"
    
    从主滚动视图以外的其他布局

    将listView包装到另一个线性布局中,并为其指定高度。 使用scrollView时,为什么要添加

    android:stretchColumns="1"
    android:scrollbars="vertical"
    android:isScrollContainer="true"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    
    到您的线性布局。将线性布局修改为:

    <LinearLayout
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:orientation="vertical">
    
    
    
    scrollview不能像预期的那样与listview一起工作,因为listview已经包含scrollviewlistview是一个复杂的控件,在滚动中进行了一些优化。如果你把它放在滚动视图中,所有的优化都将消失!因此,考虑更改您的设计。ScLabVIEW不像ListVIEW那样工作,因为ListVIEW已经包含ScRelVIEWSListVIEW是一个复杂的控件,在滚动中有一些优化。如果你把它放在滚动视图中,所有的优化都将消失!所以考虑改变你的设计。