【问题标题】:Create a layout with two layout for right and left side .having a Listview to scroll it为右侧和左侧创建具有两个布局的布局。有一个 Listview 来滚动它
【发布时间】:2013-08-06 16:35:45
【问题描述】:

我已经创建了这个布局,并希望将页面的左侧和右侧分成两个相同的部分。里面有一个滚动条我想用ListView请帮帮我我想要左侧独立的scorll和右侧独立的滚动

<?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="5dip" >

            <!--  ListRow Left sied Thumbnail image -->
            <LinearLayout android:id="@+id/thumbnail" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="3dip"      
                android:layout_alignParentLeft="true"
                android:orientation="vertical"
                android:layout_marginRight="5dip">

                <ImageView
                    android:id="@+id/if"
                    android:layout_width="50dip"
                    android:layout_height="42dp"
                    android:src="@drawable/ic_launcher" />

                <TextView
                    android:id="@+id/fc"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:textSize="12sp"
                    android:text=""
                    android:textStyle="bold" />
                <TextView
                    android:id="@+id/test"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:textSize="12sp"
                    android:text=""
                    android:textStyle="bold" />

            </LinearLayout>


            <TextView
                android:id="@+id/ty"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/thumbnail"
                android:layout_toRightOf="@+id/thumbnail"
                android:text=""
                android:textColor="#040404"
                android:typeface="sans" 
                android:textSize="15dip"
                android:textStyle="bold"/>


            <TextView
                android:id="@+id/dd"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/flightTime"
                android:textColor="#343434"
                android:layout_marginTop="1dip"
                android:layout_toRightOf="@+id/thumbnail"
                android:text="" />

            <TextView
                android:id="@+id/cc"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/flightDuration"
                android:textColor="#343434"
                android:layout_marginTop="1dip"
                android:layout_toRightOf="@+id/thumbnail"
                android:text="" />

        </RelativeLayout>

这是我的列表视图

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:divider="#b5b5b5"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/list_selector" />

</LinearLayout>

这就是我尝试使用列表视图创建布局的方式

http://s17.postimg.org/x1fcutey7/sample.png

【问题讨论】:

  • 使用带有两列的 grdiview
  • 你想要一个滚动视图中的列表视图吗? “我想使用 ListView 进行滚动”。请详细说明。
  • 基本上我想要 2 行多列的列表视图
  • 你能发一张它应该是什么样子的快照吗?
  • 那么问题出在哪里?您已经创建了一个 ListView,您必须再创建一个 ListView 才能完成您正在寻找的内容

标签: android


【解决方案1】:

在您的GridView 小部件中使用android:numColumns="2"

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/grid"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:numColumns="2"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:scrollbarStyle="outsideOverlay"
    android:verticalScrollbarPosition="right"
    android:scrollbars="vertical">
</GridView>

【讨论】:

    【解决方案2】:

    使用具有两列的网格视图。您需要根据需要添加广告分隔符并进行自定义。

    MainActivity.java

    public class MainActivity extends Activity {
    
    
    /** Called when the activity is first created. */
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        GridView gv = (GridView) findViewById(R.id.grid);
        CustomAdapter adapter = new CustomAdapter(MainActivity.this);
        gv.setAdapter(adapter);
    
    }
    class CustomAdapter extends BaseAdapter
    {
        LayoutInflater mInflater;
        public CustomAdapter(Context mainActivity) {
            // TODO Auto-generated constructor stub
            mInflater = (LayoutInflater) mainActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }
    
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return 20;
        }
    
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }
    
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub ViewHolder holder; 
             ViewHolder holder;
            if (convertView == null) { 
                convertView = mInflater.inflate(R.layout.row, 
                        parent, false);
                holder = new ViewHolder();
                holder.iv = (ImageView) convertView.findViewById(R.id.imageView1); 
                holder.tv1 = (TextView) convertView.findViewById(R.id.textView1); 
                holder.tv2 = (TextView) convertView.findViewById(R.id.textView2); 
                holder.tv3 = (TextView) convertView.findViewById(R.id.textView3); 
                holder.tv4 = (TextView) convertView.findViewById(R.id.textView4); 
               convertView.setTag(holder); 
           } else { 
               holder = (ViewHolder) convertView.getTag(); 
           } 
    
          // set data here
    
           return convertView; 
    
        }
    
    }
    static class ViewHolder
    {
        ImageView iv;
        TextView tv1,tv2,tv3,tv4;
    }
    }
    

    test.xml

    <?xml version="1.0" encoding="utf-8"?>
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/grid"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:numColumns="2"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:scrollbarStyle="outsideOverlay"
        android:verticalScrollbarPosition="right"
        android:scrollbars="vertical">
    </GridView>
    

    行.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="17dp"
            android:layout_marginTop="14dp"
            android:src="@drawable/ic_launcher" />
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/imageView1"
            android:layout_marginLeft="43dp"
            android:layout_toRightOf="@+id/imageView1"
            android:text="TextView" />
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/imageView1"
            android:layout_alignLeft="@+id/textView1"
            android:text="TextView" />
    
        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView2"
            android:layout_below="@+id/textView2"
            android:layout_marginTop="24dp"
            android:text="TextView" />
    
        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textView3"
            android:layout_alignBottom="@+id/textView3"
            android:layout_alignLeft="@+id/imageView1"
            android:text="TextView" />
    
    </RelativeLayout>
    

    快照

    编辑:

    如果您希望左侧和右侧单独滚动,您将需要两个列表视图。一个给左边,一个给右边。有两个列表视图的自定义适配器。

    【讨论】:

    • 这正是我想要的,但我希望在左侧和右侧分别滚动
    • 上述设计无法做到这一点。你见过 google play 市场吗?
    • 滚动即将出现在完整的页面上,我希望将左侧和右侧布局分开
    • @Pankaj 采用上述设计是不可能的。如果没有帮助,请忽略此答案。请在您关于左侧独立滚动和右侧独立滚动的问题中提及相同的内容。
    • @Pankaj 我不确定,但我猜这个问题是由另一个用户 gaurav 提出的。快照看起来与 gaurav 发布的航班相似。我觉得很奇怪。stackoverflow.com/questions/18054704/…。快照已删除。问题已编辑。
    猜你喜欢
    • 2017-03-04
    • 2016-12-29
    • 2023-02-13
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多