所以我有一个大量使用flexbox的布局。我一直非常享受它,它很棒。作为一个注释,我也大量使用AngularJS,我使用 KeyGenerator keyGenerator = KeyGenerator.getInstance(
KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore");
keyGenerator.initialize(
new KeyGenParameterSpec.Builder("key2",
KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
.setBlockModes(KeyProperties.BLOCK_MODE_GCM)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
.build());
SecretKey key = keyGenerator.generateKey();
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, key);
...
// The key can also be obtained from the Android Keystore any time as follows:
KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
key = (SecretKey) keyStore.getKey("key2", null);
(或其他东西)可能会导致问题。
问题是我使用第三方组件绘制网格(angular-grid是特定的)。它只在从JavaScript专门调用时调整其列的大小,并且也可以在初始化后设置为执行此操作。
这里的问题是列没有正确调整大小。他们似乎被重新调整到不同的空间。我非常肯定的是,flexbox首先绘制对象而不考虑flex,然后在加载东西后,布局会延伸。
假设我的假设是正确的,我希望解决这个问题的方法是找到一个JavaScript(或JQuery或Angular)事件来监听它何时完成调整大小,然后通知网格它需要重绘列。话虽如此,我还没有发现这样的事件,所以也许我接近这个问题的错误,或者我可能没有选择最好的搜索词。
只是为了帮助可视化问题,这里有一个HTML示例(网格有点奇怪)。 (style =" ..."实际上是通过css类或Angular Material标签定义的 - 请参阅here。)
import seaborn as sns
sns.set()
# Load the example flights dataset and conver to long-form
flights_long = sns.load_dataset("flights")
flights = flights_long.pivot("month", "year", "passengers")
# Draw a heatmap with the numeric values in each cell
sns.heatmap(flights, annot=True, fmt="d", linewidths=.5)
感谢您的时间。
答案 0 :(得分:1)
如果您认为是这种情况,那么您可以尝试三件事。
1)将flex-basis
添加到内部网格div
,以便它立即加载适当的大小,避免调整大小问题。
2)初始化ag-grid并将数据添加到您的州后应用display: flex
。
3)一旦加载数据并初始化ag-grid,就使用requestAnimationFrame
方法重绘ag-grid(这可能是你正在寻找的最接近的东西,只要等待borwser重绘完成)