나는 약 20 개의 열과 5-20 +에서 달라질 레코드 수를 가진 테이블을 가지고 있습니다. 가로 및 세로 스크롤 막대를 사용하여이 데이터를 모두 화면에 표시하려고합니다. 나는 이것을하기 위해 어떤 방법이 최선인지에 관해서 찢겨져있다. 나는 listview 솔루션을 시작했지만 붙잡혀 버린 종류가있다. 다음은 내 레이아웃의 XML입니다 (테이블 행을 응축 필자하지만 당신은 아이디어를 얻을) ..MonoDroid 가로 스크롤 막대가있는 데이터베이스 필드 표시
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnHome"
style="@style/homeButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="@string/btnHomeText"
android:textColor="@color/white"
android:textStyle="bold" />
<RelativeLayout
android:id="@+id/InnerRelativeLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/btnHome">
<LinearLayout
style="@style/stdWindow"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:baselineAligned="false"
android:orientation="vertical">
<TextView
android:id="@+id/tvDriverReport"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/VeryDarkGray"
android:text="@string/futureFeatureText"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/OMSGold" />
<TableLayout
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/tableLayout1">
<TableRow
android:id="@+id/tableRow1">
<TextView
android:text="@string/summaryTicketNumber"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_column="0"
android:id="@+id/textView10" />
<TextView
android:text="@string/summaryDate"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_column="1"
android:id="@+id/textView11" />
<TextView
android:text="@string/summaryTruckNumber"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_column="2"
android:id="@+id/textView12" />
<TextView
android:text="@string/summaryBeginOdometer"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_column="3"
android:id="@+id/textView21" />
<TextView
android:text="@string/summaryEndOdometer"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_column="4"
android:id="@+id/textView22" />
</TableRow>
<TableRow
android:id="@+id/tableRow2">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_column="0"
android:id="@+id/tvTicketNumber" />
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_column="1"
android:id="@+id/tvSummaryDate" />
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_column="2"
android:id="@+id/tvTruckNumber" />
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_column="3"
android:id="@+id/tvBeginOdometer" />
<TextView
android:layout_column="4"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/tvEndOdometer" />
</TableRow>
</TableLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
이 동적으로 데이터베이스에서 채워집니다 후에 그래서 기본적으로 테이블 행 1 정적 제목 데이터 만 모든 행이다 따라서 행의 수는 가변적입니다.
사용자 지정 목록 어댑터 솔루션에서 시작했지만 작동하지 않는 것 같습니다. 여기에 기본적으로 그냥있는 LinearLayout은 목록보기 다음 한 내 customlistadapter
public class CustomListAdapter : BaseAdapter
{
Activity context;
public List<TicketSummaryMapper> items;
public CustomListAdapter (Activity context)
: base()
{
this.context = context;
var db = new SQLiteConnection (db);
items = db.Query<TicketSummaryMapper> ("select * from mydatabase");
}
public override int Count
{
get { return items.Count; }
}
public override Java.Lang.Object GetItem(int position)
{
return position;
}
public override long GetItemId(int position)
{
return position;
}
public override View GetView (int position, View convertView, ViewGroup parent)
{
var item = items [position];
var view = (convertView ??
context.LayoutInflater.Inflate (
Resource.Layout.ticket_summary,
parent,
false)) as LinearLayout;
//Find references to each subview in the list item's view
var textTicketNo = view.FindViewById (Resource.Id.tvTicketNumber) as TextView;
var textSummaryDate = view.FindViewById (Resource.Id.tvSummaryDate) as TextView;
var textTruckNumber = view.FindViewById (Resource.Id.tvTruckNumber) as TextView;
var textBeginOdometer = view.FindViewById (Resource.Id.tvBeginOdometer) as TextView;
//Assign this item's values to the various subviews
textTicketNo.SetText (item.TicketNumber, TextView.BufferType.Normal);
textSummaryDate.SetText (item.TransDate, TextView.BufferType.Normal);
textTruckNumber.SetText (item.EquipmentNo, TextView.BufferType.Normal);
textBeginOdometer.SetText (item.BeginOdometer, TextView.BufferType.Normal);
//Finally return the view
return view;
}
public TicketSummaryMapper GetItemAtPosition(int position)
{
return items[position];
}
}
하고 결국 내 활동 ...
[Activity (Label = "AdminActivity")]
public class AdminActivity : Activity
{
CustomListAdapter listAdapter;
public AdminActivity() { }
public AdminActivity(IntPtr handle, JniHandleOwnership transfer) : base(handle, transfer) { }
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
//Set the Activity's view to our list layout
SetContentView (Resource.Layout.customlist);
//Create our adapter
listAdapter = new CustomListAdapter (this);
//Find the listview reference
var listView = FindViewById<ListView> (Resource.Id.listView);
//Hook up our adapter to our ListView
listView.Adapter = listAdapter;
}
}
customlist 레이아웃이며 이잖아. 이보고 시간을내어 주셔서 감사합니다 ...
좋아있는 ScrollView가 수평 및 수직 스크롤 설정으로하고 메인 레이아웃 내부에 시도 파일 (모든 행에 대해 반복)이 아니라 데이터베이스의 데이터 행에 맨 위에 게시되었습니다. – k1komans