Есть ли способ заставить TListView Delphi вести себя как настоящий ListView в Android? , например, каждый элемент списка имеет свой собственный «вид», и в этом представлении может быть несколько других представлений (компонентов), таких как несколько текстовых полей и флажков и ...?Delphi XE5 Android: как сделать, чтобы каждый элемент списка имел свой собственный шаблон?
ответ
Да, есть способ. Я делаю это, используя эти два метода. Метод CreateItem - это то, где вы помещаете нужные компоненты в listitem.
procedure TForm1.CreateItem;
var
edit1:TClearingEdit;
editCalendar1:TCustomCalendarEdit;
begin
edit1:= TClearingEdit.Create(Self);
edit1.Parent := fItem;
edit1.Align := TAlignLayout.alClient;
edit1.Text := 'Blabla';
edit1.OnChange := actEdit1OnChange;
editCalendar1 := TCalendarEdit.Create(Self);
editCalendar1.Parent := fItem;
editCalendar1.Align := TAlignLayout.alRight;
editCalendar1.Width := 90;
editCalendar1.Date := Date;
editCalendar1.OnChange := actEditCalOnChange;
end;
procedure TForm1.CreateListItem;
begin
fItem:= TListBoxItem.Create(your_listbox);
fItem.Parent := your_listbox; //Here you put the ListBox as a parent
fItem.Align := TAlignLayout.alTop;
fItem.Text := '';
fItem.Height := 50;
CreateItem;
end;
Чтобы добавить пользовательский элемент в список, просто вызовите метод CreateListItem! Кроме того, я использую метод OnChange для приема данных здесь пример:
procedure TForm1.actEditCalOnChange(Sender: TObject);
begin
label1.text := TCalendarEdit(Sender).Text;
end;
procedure TForm1.actEdit1OnChange(Sender: TObject);
begin
label2.text := TClearingEdit(Sender).Text;
end;
В каком подразделе 'TDocumentView' находится? – RezaRahmati
Вы должны будете использовать TListBox, то вы можете добавить элементы списка и каждый элемент может иметь текст элемента и деталь, но вы ограничены предопределенные раскладки. Вы не можете сделать свой собственный макет, как в Eclipse. Вам придется использовать FireMonkey Style Designer, чтобы создать свой собственный стиль. Взгляните here.
Неправда, см. Мой ответ! Вы можете поместить каждый компонент в один элемент TListBox! – Remi
Ваш вопрос получит больше внимания, если вы пытаетесь решить эту проблему самостоятельно, и после того, что не работает вместе с фрагментом кода. –
Не так ли, как FMX работает? –
Используйте несколько форм, по одному для каждого вида деятельности (вид). Активируйте его, когда выбран элемент ListView, и вернитесь к основной форме, когда эта активность будет завершена. Пример переключения между формами во время выполнения см. В образце «Формы» FireMonkey Mobile, расположенном в папке «Образцы». Вы также можете использовать элемент управления вкладкой и поместить ListView на первую вкладку; при выборе действия активируется соответствующая закладка, и когда действие завершено, вы возвращаетесь на первую вкладку. –