Hello (and I apologize to all the other commenters on here that I haven't replied to recently... for some reason, I stopped getting thread update notification from Unity at some point in the last month or so...)

1) true, that's intentional to note cell vs row selection mode. If you ONLY need row selection, go into the TablePro settings in your editor. General Settings > Table Selection UI Mode and set it to 'ROW' to resolve the UI issue I think you are probably trying to fix there.

I am having 2 very noticeable issues with the table that I am hoping you can help with:

1) the header text is not vertically aligned properly using TextMeshPro as shown in the attached image (Description and Interval columns are the most noticeable). What really surprises me is I checked the rect transforms of the Header Column gameobjects and their child text objects in play mode and all had identical values (aside from X position and width). Even the TextMeshPro components were identical.
2) Some of the row lines are darker than others. and it's not the same ones all the time, it varies during scrolling
EDIT: issue 2 is not as big of a deal - turning off the lines helped a lot. issue 1 is what I'm really concerned about.

Attached Files:

I am having 2 very noticeable issues with the table that I am hoping you can help with:

1) the header text is not vertically aligned properly using TextMeshPro as shown in the attached image (Description and Interval columns are the most noticeable). What really surprises me is I checked the rect transforms of the Header Column gameobjects and their child text objects in play mode and all had identical values (aside from X position and width). Even the TextMeshPro components were identical.
2) Some of the row lines are darker than others. and it's not the same ones all the time, it varies during scrolling
EDIT: issue 2 is not as big of a deal - turning off the lines helped a lot. issue 1 is what I'm really concerned about.

Thanks in advanced!

Click to expand...

For #2, you need to make your horizontal lines > 1px or set your canvas to pixel perfect, that's not really a TablePro issue but a Unity issue.

This will be included in the next release, but in the meantime, the fix for #1 is:

Well I figured out the sorting thing, the basic idea is to keep a reference in the Datum class to the original object and use that to sort the Datums directly. My sort function looks like this:

DataTable.cs

Code (CSharp):

privatevoid ApplyCurrentSort()

{

bool isAscending =(CurrentSortDirection == SortDirection.Ascending);

// Reset current sort UI

for(int i =0; i <this.table.columns.Count; i++)

{

if(i == currentSortColumn)

{

if(isAscending)

{

this.table.columns[i].headerIcon="UP";

}

else

{

this.table.columns[i].headerIcon="DOWN";

}

}

else

{

this.table.columns[i].headerIcon=null;

}

}

Comparison<Datum> sort =delegate(Datum dat1, Datum dat2){

Chrom chrom1 =(Chrom)dat1.data;

Chrom chrom2 =(Chrom)dat2.data;

// NAME

if(currentSortColumn == colName)

{

if(isAscending)

{

return chrom1.Name.CompareTo(chrom2.Name);

}

else

{

return chrom2.Name.CompareTo(chrom1.Name);

}

}

elseif(currentSortColumn == colID)

{// ID

if(isAscending)

{

return chrom1.ID.CompareTo(chrom2.ID);

}

else

{

return chrom2.ID.CompareTo(chrom1.ID);

}

}

return chrom1.Name.CompareTo(chrom2.Name);

};

// do the sort

this.table.data.Sort(sort);

}

and then in Datum.cs

Code (CSharp):

publicclass Datum

{

...

publicobject data;

...

}

publicclass TableDatumList : IEnumerable<Datum>

{

...

publicvoid Sort(Comparison<Datum> comparison)

{

this._changing =true;

this.list.Sort(comparison);

RebuildIndexes();

this.FinishDataChange();

}

...

}

This method works pretty much instantly. My animation issue was fairly easily fixed as well by just setting the animation speed to 0.

I'm now noticing though that I'm taking a pretty heavy performance hit when resizing the panel containing the data table.And it flashes the spinner a bunch of times which looks really bad. I'll report back if I figure it out, my guess is that it's rebuilding something unnecessarily.

Did we find a solution to the re-sizing performance issue? I am having the same problem.

Thanks
Fabien

Click to expand...

We are looking at it... so far it's required pulling the Unity UI source code and changing a silly behavior in their OnRectTransformDimensionsChanged event. We are hoping to find a less intrusive fix though... sorry for the delay but this one is a tough issue. We are on it though.

We are looking at it... so far it's required pulling the Unity UI source code and changing a silly behavior in their OnRectTransformDimensionsChanged event. We are hoping to find a less intrusive fix though... sorry for the delay but this one is a tough issue. We are on it though.

Well... not necessarily good news, but we found some fixes around whether or not your UI canvas is set to pixel-perfect or not. There honestly is just a lot of 'stuff' around handling resize. Probably best to disable the table game-object then re-initialize and re-enable it after resize... but I'll PM you a link to the latest test asset bundle to see if it helps at all.

Hello,
I need to programmatically control the view of the table.
So I can scroll to the required row with SetSelected and animate set to true.
However what I need is when the selected Row is not on the first page of data is to have this selected Row in the middle of the table view as much as possible.
If I could know how many rows are visible I could use half that amount as buffer either side of the required row. I had thought that I’d seen GetRowForDatum returning null as implying the row isn’t visible however it seems to continue off screen for a number of extra rows.
Do you have any other methods of achieving this I haven’t spotted in the code?

Hello,
I need to programmatically control the view of the table.
So I can scroll to the required row with SetSelected and animate set to true.
However what I need is when the selected Row is not on the first page of data is to have this selected Row in the middle of the table view as much as possible.
If I could know how many rows are visible I could use half that amount as buffer either side of the required row. I had thought that I’d seen GetRowForDatum returning null as implying the row isn’t visible however it seems to continue off screen for a number of extra rows.
Do you have any other methods of achieving this I haven’t spotted in the code?

Click to expand...

Not really, no. We have a patch to address extra rows being created but that probably won't help you fill this request either way. You'd probably need to resort to measuring the size of the table scroller frame and the row and adjusting the scrolling until it's positioned the way you want it, but we don't support that natively.

Hi, I just purchased this asset and have quite a lot of questions now after trying it out.

Is there a way to customize the look & feel of the table except just colors?

What I mean is like using a specific texture for the scrollbar track and handle.
I would also like to disable "inertia" and "swiping" on the table (in the ScrollRect component to be exact).

Would I have to do these kind of changes with a custom script at run-time?

I also wonder why there is a gap between the header bar and the vertical scrollbar. I suppose this is where scroll bar up/down buttons would fit in nicely. But why aren't they visible? Is there a method to set this up?

Hi,
I'm currently helping out on a project using this asset and we're having a massive performance issue from garbage collection. I was hoping to refactor it to use an object pool instead of instantiate/destroy but it looks like all the cells are created using go = new GameObject() and then components are added to them. Is there any chance of an update that uses an object pool in the near future? or some advice on refactoring it? Typically my object pool method requires a prefab or a class to pass to the pool so I'm not sure the best method forward at refactoring your Factory.cs to work that way.

Hi, I just purchased this asset and have quite a lot of questions now after trying it out.

Is there a way to customize the look & feel of the table except just colors?

What I mean is like using a specific texture for the scrollbar track and handle.
I would also like to disable "inertia" and "swiping" on the table (in the ScrollRect component to be exact).

Would I have to do these kind of changes with a custom script at run-time?

I also wonder why there is a gap between the header bar and the vertical scrollbar. I suppose this is where scroll bar up/down buttons would fit in nicely. But why aren't they visible? Is there a method to set this up?

Hi,
I'm currently helping out on a project using this asset and we're having a massive performance issue from garbage collection. I was hoping to refactor it to use an object pool instead of instantiate/destroy but it looks like all the cells are created using go = new GameObject() and then components are added to them. Is there any chance of an update that uses an object pool in the near future? or some advice on refactoring it? Typically my object pool method requires a prefab or a class to pass to the pool so I'm not sure the best method forward at refactoring your Factory.cs to work that way.

Click to expand...

Are you sure you are seeing destroy events? We only ever create a specific amount of gameobjects that are needed to fill the screen and we re-use those rows/cells. We don't destroy objects or continuously instantiate rows.

Are you sure you are seeing destroy events? We only ever create a specific amount of gameobjects that are needed to fill the screen and we re-use those rows/cells. We don't destroy objects or continuously instantiate rows.

Are you seeing the same behavior in the demo scenes?

Click to expand...

Ah okay upon further looking into it it's the way the previous coder has implemented some stuff, he's recreating tables unneccesarily instead of just keeping one and editing it. It wasn't code in your end it was on ours. The plugin itself works great!

Hello,
I have found an issue while trying out your component. I am using Unity 2018.3.0b11, and I know that it is a beta version and there might be issues, but when I am trying your sample scenes I am experiencing quite a heavy flickering during scrolling. If there is an issue in the beta version of unity it would be nice to report it, but I have no idea what can be the cause.

Hello,
I have found an issue while trying out your component. I am using Unity 2018.3.0b11, and I know that it is a beta version and there might be issues, but when I am trying your sample scenes I am experiencing quite a heavy flickering during scrolling. If there is an issue in the beta version of unity it would be nice to report it, but I have no idea what can be the cause.

Click to expand...

Im not the dev, but from what i can see the flickering is caused by all cells getting inactive/invisible while scrolling. This reduces render calls and hides the object-pooling when the top or last cell is moved to the oposite end.
If u scroll very slow u can see that the cells only hide if on row leaves the view.

Im not the dev, but from what i can see the flickering is caused by all cells getting inactive/invisible while scrolling. This reduces render calls and hides the object-pooling when the top or last cell is moved to the oposite end.
If u scroll very slow u can see that the cells only hide if on row leaves the view.

Click to expand...

Thank you for your reply. I get it now. The flickering is visible only when iOS build setting is selected. So it is related to the known issue 1064796 I guess.

Quick question before I purchase this. Is it possible to add a table pro table into a scrollview that already has content so doesnt add its own scroll bars?

So i do not end up with a scrollable table in an existing scrollview.

I.e the table pro doesnt setup its own scrollview but honours the one its already contaiend wtihin?

Click to expand...

Table-Pro just lives inside a root RectTransform and creates scrollbars for its content when necessary. If you make the RectTransform sufficiently large and control scrolling externally then it should work fine.

can any one help me~~
in my pc,the table gameobject alpha equal to zero when table dragging
(see the gif in attachment)
---------------------------------------------------------------------------------------
i see the Documentation ,it work well when table dragging
but in my pc, it seem not normal,

the package version is "current ver. 1.25"
the unity version is "Unity 2018.3.0f2 (64-bit)"
the pc is "window 10"
use the simple scene of package(no any change)

although I can hide the relevant code
(see the png in attachment , the Row.cs, "public void Refresh()" function)
but i don't understand why??
i don't understand why there is such a problem.

Attached Files:

can any one help me~~
in my pc,the table gameobject alpha equal to zero when table dragging
(see the gif in attachment)
---------------------------------------------------------------------------------------
i see the Documentation ,it work well when table dragging
but in my pc, it seem not normal,

the package version is "current ver. 1.25"
the unity version is "Unity 2018.3.0f2 (64-bit)"
the pc is "window 10"
use the simple scene of package(no any change)

although I can hide the relevant code
(see the png in attachment , the Row.cs, "public void Refresh()" function)
but i don't understand why??
i don't understand why there is such a problem.

Click to expand...

Yuck... ugly bug there. A temporary workaround is to set the animation speed to 0. This will let you at least scroll but won't show the 'normal' animation when table data changes. I'll look at it and see if I can find a better solution.

Yuck... ugly bug there. A temporary workaround is to set the animation speed to 0. This will let you at least scroll but won't show the 'normal' animation when table data changes. I'll look at it and see if I can find a better solution.

Hi @slumtrimpet,
i have a problem with the asset. With Unity 2018.3.(I did not test older versions, because I bought the asset a few days ago) tables are not shown in the final build. Not even the examples that came with it. In the Editor everything is fine, but in my final Mac or Windows builds I can't see anything.

Hi @slumtrimpet,
i have a problem with the asset. With Unity 2018.3.(I did not test older versions, because I bought the asset a few days ago) tables are not shown in the final build. Not even the examples that came with it. In the Editor everything is fine, but in my final Mac or Windows builds I can't see anything.

I rolled a Windows build from 2018.3.2f1 of the DataTable.unity scene included in the Samples directory and it's working for me. Can you give me any more info or PM me a reproducible test scene I can poke at?

I have the same problem, on win & android. i check it also with the simple scriept. it works perfect on the editor.

Click to expand...

Yeah, I worked through this in PM's with @fraeri. Sorry, should have put the synopsis back over here. TMPro used to create a TMP_PRESENT Scripting Define Symbol. What we found is that it, evidently, no longer does that.

Short term, go ahead and add TMP_PRESENT to Scripting Define Symbols yourself. (assuming you have TextMeshPro enabled, which you should since it's free now)

Long Term, I need to look at how TMPro announces it's presence in the current release.

When adding a table to a canvas that has Render Mode set to "Screen Space - Camera", I get some bizarre results when scrolling the table. The table repeats values, or draws blank rows, etc. To work around it, I have to fiddle with the Y coordinate of the camera that is used for rendering. Leaving the UI camera I use set to 0,0,0 produces the odd results. Setting it to 0,50,0 makes the table work properly.

I suspect it has something to do with ui measurements that the table performs. That's getting goofed up when the containing canvas is set to screen space camera. I'm using Unity 2018.2.20f1. My UI camera is orthographic (not sure that matters).

When adding a table to a canvas that has Render Mode set to "Screen Space - Camera", I get some bizarre results when scrolling the table. The table repeats values, or draws blank rows, etc. To work around it, I have to fiddle with the Y coordinate of the camera that is used for rendering. Leaving the UI camera I use set to 0,0,0 produces the odd results. Setting it to 0,50,0 makes the table work properly.

I suspect it has something to do with ui measurements that the table performs. That's getting goofed up when the containing canvas is set to screen space camera. I'm using Unity 2018.2.20f1. My UI camera is orthographic (not sure that matters).

Click to expand...

Seems to work for me on 2018.3.5, but I'll pull 2018.2.20 and test in the exact rev you are using. I'll report back in a bit.

EDIT: also... if you can reproduce the issue in one of the included TablePro sample scenes, that would help a ton. PM me if you can do that and could shoot over the scene.

Seems to work for me on 2018.3.5, but I'll pull 2018.2.20 and test in the exact rev you are using. I'll report back in a bit.

EDIT: also... if you can reproduce the issue in one of the included TablePro sample scenes, that would help a ton. PM me if you can do that and could shoot over the scene.

Click to expand...

I guess I'm going to have to ask if you can help me with a reproducible scene. I can't get the behavior you describe in 2018.2.20 in the sample scenes no matter how I set the camera or the canvas render mode. What's are your canvas scaler settings?

I've sent you PM with a project that reproduces it. I had to set the canvas to pixel perfect. I reproduced it with one of the sample scenes (after changing the canvas camera settings, of course). If you don't see the conversation/PM with the project let me know.

Oops...

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.