如何在android中使用gridview的水平滚动条?

时间:2012-11-24 03:06:49

标签: android gridview scrollbar

<GridView
android:id="@+id/gridView1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:columnWidth="100dip"
android:numColumns="8"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical|horizontal"
android:stretchMode="none" >
</GridView>

我想在gridview中使用垂直和水平滚动条,如上所示。 我看到垂直的一个确实运作良好,但水平一个没有。 所以我试图通过将gridview放在水平滚动视图下面来修复它,如下所示

    <HorizontalScrollView
        android:id="@+id/horizontalScrollView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <GridView
            android:id="@+id/gridView1"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:columnWidth="100dip"
            android:numColumns="8"
            android:scrollbarStyle="insideOverlay"
            android:scrollbars="vertical|horizontal"
            android:stretchMode="none" >
        </GridView>

    </HorizontalScrollView>

更糟糕的是,它只显示了一列gridview,当然,没有水平滚动条。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

GridView扩展AbsListView课程。本质上,网格视图是一个列表视图,除了行之外还支持列。所以它不支持水平滚动。

通过设置android:scrollbars="vertical|horizontal"属性,您所做的就是指示网格视图显示水平和垂直滚动条。设置此属性将不允许在视图中滚动(gridview和listviews本质上启用了滚动)。

如果您可以对您尝试做的事情进行更多解释,可以建议另一种方法。

答案 1 :(得分:0)

在android中使用水平和垂直scroolview的最佳解决方案

<%@ page contentType="application/pdf"%>
<%@ page trimDirectiveWhitespaces="true"%>
<%@ page import="net.sf.jasperreports.engine.*"%>
<%@ page import="java.io.File"%>
<%@ page import="java.io.FileInputStream"%>
<%@ page import="java.io.FileNotFoundException"%>
<%@ page import="java.io.InputStream"%>
<%@ page import="java.sql.Connection"%>
<%@ page import="java.sql.DriverManager"%>
<%@ page import="java.sql.SQLException"%>
<%@ page import="java.util.*"%>

<%
    Connection conn = null;
    Map parametersMap = new HashMap();  
    parametersMap.put("id",1);
    try{
        Class.forName("com.mysql.jdbc.Driver");
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/project?user=root&password=123456");

        String jrxmlFile = session.getServletContext().getRealPath("MainReport.jrxml");
        InputStream input = new FileInputStream(new File(jrxmlFile));

        //Generation the report
        JasperReport jasperReport = JasperCompileManager.compileReport(input);
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametersMap, conn);

        //Exporting the report as PDF
        JasperExportManager.exportReportToPdfStream(jasperPrint, response.getOutputStream());
        response.getOutputStream().flush();
        response.getOutputStream().close();
    } catch (Exception e){
        e.printStackTrace();
    } finally {
        if(conn != null){
            conn.close();
        }
    }
%>