Flexbox调整大小事件(?)

时间:2015-08-24 19:19:31

标签: javascript html angularjs flexbox

所以我有一个大量使用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)

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

如果您认为是这种情况,那么您可以尝试三件事。

1)将flex-basis添加到内部网格div,以便它立即加载适当的大小,避免调整大小问题。

2)初始化ag-grid并将数据添加到您的州后应用display: flex

3)一旦加载数据并初始化ag-grid,就使用requestAnimationFrame方法重绘ag-grid(这可能是你正在寻找的最接近的东西,只要等待borwser重绘完成)